• struts2中action中的通配符


    struts中一个正常的最普通不过的action是这样子的

    1 <package name="default1" namespace="/gys" extends="struts-default">
    2         <action name="registAction" class="com.b.Regist" method="test">
    3             <result name="regist1">/1/regist1.jsp</result>
    4             <result name="regist2">/1/regist2.jsp</result>            
    5         </action>
    6     </package>    

    使用通配符1

    1 <package name="default1" namespace="/gys" extends="struts-default">
    2         <action name="*Action" class="com.b.Regist" method="test">
    3             <result name="regist1">/1/regist1.jsp</result>
    4             <result name="regist2">/1/regist2.jsp</result>            
    5         </action>
    6  </package>    

    action中的*会和你的请求路径想匹配.符合要求的就进行下一步执行.*表示长度不为0的字符.

    比如:insertAction,updateAction都是符合要求的.

    使用通配符2

    1 <package name="default1" namespace="/gys" extends="struts-default">
    2         <action name="*Action" class="com.b.Regist" method="{1}">
    3             <result name="regist1">/1/regist1.jsp</result>
    4             <result name="regist2">/1/regist2.jsp</result>            
    5         </action>
    6     </package>    

    这里method="{1}"表示通配符的占位符.

    占位符都是从1开始的,不是从零考试的.

    使用通配符3

    1 <package name="default1" namespace="/gys" extends="struts-default">
    2         <action name="*_*Action" class="com.b.{2}" method="{1}">
    3             <result name="regist1">/1/regist1.jsp</result>
    4             <result name="regist2">/1/regist2.jsp</result>            
    5         </action>
    6     </package>    

    这里的{2}表示的就是第二个*了

    使用通配符4

    1 <package name="default1" namespace="/gys" extends="struts-default">
    2         <action name="*_*_*Action" class="com.b.{2}" method="{1}">
    3             <result name="{3}">/1/{3}.jsp</result>
    4             <result name="{3}">/1/{3}.jsp</result>            
    5         </action>
    6     </package>    

    通配符还可以进行内部的占位符的匹配

    使用通配符5

     1 <package name="default1" namespace="/gys" extends="struts-default">
     2         <action name="registAction" class="com.b.Regist" method="test">
     3             <result name="regist1">/1/regist1.jsp</result>
     4             <result name="regist2">/1/regist2.jsp</result>            
     5         </action>
     6         <action name="*Action" class="com.b.RegistT" method="{1}">
     7             <result name="regist1">/1/regist1.jsp</result>        
     8             <result name="regist2">/1/regist2.jsp</result>            
     9         </action>
    10     </package>   

    当精确匹配和模糊匹配都符合请求时,使用精确匹配

    当模糊匹配都符合时,按照顺序,谁第一,就执行那个action.

    默认Action:

    在某些情况下,用户请求非常简单,不需要系统过多的处理,或者这些请求只是一个简单的转发.

    对于只是简单的超链接请求,可以通过name为*的Action实现(最好放在最后).除此之外,struts2还允许在容器中定义一个默认的Action.

    1 <default-action-ref name="errorReq"></default-action-ref>
    2 <action name="errorReq">
    3     <result>/error.jsp</result>
    4 </action>    

    这段代码必须放在package里的第一位,如果放在其他action之后,会报错.

  • 相关阅读:
    java的继承---包装器与自动装箱
    linux开机启动过程,很多人说的不太清楚的看看。
    黑盒测试/三角形(OC)
    git 忽略一些文件的提交
    volley 框架的使用
    如何通过阿里百川的集成,以及manifest的权限配置完成淘客商品详情页的链接
    抓取网站访问者的QQ号码
    写写东西吧
    Android 强制实现下线功能
    Android 新闻显示界面且适应平板
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4486883.html
Copyright © 2020-2023  润新知