zoukankan      html  css  js  c++  java
  • Structs2配置文件相关说明

    1,structs.xml文件解析

    <package name="front" namespace="/front" extends="struts-default">
      <global-results>
        <result name="error">/WEB-INF/jsp/error.jsp</result>
      </global-results>
    
      <global-exception-mappings>
        <exception-mapping exception="java.lang.Exception" result="error"/>
      </global-exception-mappings>
    
      <action name="helloworld">
        <result >/hello.jsp</result>
      </action>
    </package>

    name,对应的是前台,后台或者模块的名称,一般设置的为namespace相同
    namespace:决定了action的访问路径,默认为"",可以接受所有的action,namespace可以写为/,或者/xxx,/xxx/yyy,那么对应的访问路径分别为/index.action,/xxx/index.action,或者/xxx/yyy/index.action,这里的 .action默认是可以省去的

    2,执行过程

    <package name="front" namespace="/front" extends="struts-default">
        <action name="hello" class="test.indexaction1">
            <result name="success"> /hello.jsp</result>
        </action>
    </package>


      进入structs.xml文件后,根据url进行匹配namespace,如果没有匹配成功,则返回到web.xml文件中,执行index.jsp文件,如果匹配成功,则进行下一步操作:匹配action,根据action的name,做进一步匹配,如果匹配不成功,仍然返回web.xml文件中进行下一步操作,如果匹配成功,开始根据class名来查找对应的class,如果没有class这个值,则默认执行的是ActionSupport这个类中的execute方法,默认返回的是"success",然后根据success来匹配action后面的result节点的name值,如果匹配到,则返回对应的jsp文件,这就是整个过程,如果没有找到,则返回404

    3,路径问题
      sturcts2的路径是根据action的路径而不是jsp的路径来确定的,所以尽量不要使用相对路径虽然可以使用redirect方式解决,但redirect方式并非必要解决方法很简单,统一使用绝对路径。在jsp中用request.getContextRoot方式来拿到webapp的路径,或者使用myeclipse经常使用的,指定basePath<base href=<%=basepath%>后,相当于指定整个页面的连接的基本url

    4,resulttype
    这个常用的有下面的

    • dispatcher 服务器内部跳转到另外一个页面
    • redirect 浏览器页面跳转到另外一个页面
    • chain 服务器内部跳转到另外一个action
    • redirectAction 浏览器跳转到另外一个action
    • framwork
    • stream

    5,structs tags
      通用标签

      • property
      • set 集合,主要用于键值对,
      • bean 实例化对象
      • include 少用
      • param
      • debug(这个是<s:debug></s:debug>)

    控制标签

      • if elseif else
      • iterate 循环控制器

    UI标签 结合其他框架,用的比较少

    Ajax标签 用的比较少

    $#%的区别 用的比较少

  • 相关阅读:
    Easy | LeetCode 154 | 剑指 Offer 11. 旋转数组的最小数字 | 二分法
    Easy | 剑指 Offer 17. 打印从1到最大的n位数 | 大数
    Easy | LeetCode 191 | 剑指 Offer 15. 二进制中1的个数 | 位运算
    Easy | 剑指 Offer 57
    Medium | LeetCode 15. 三数之和 | 双指针法
    jq load()方法实现html 模块化。
    vue 剪切图片上传头像,使用 cropperjs 实现
    vue 的nextTick的理解
    使用nodejs进行开发,concurrently模块,使我们同时执行多个命令。
    cookie生命周期expires 时间过期,但是cookie没有被浏览器清理的问题
  • 原文地址:https://www.cnblogs.com/ningheshutong/p/5676891.html
Copyright © 2011-2022 走看看