zoukankan      html  css  js  c++  java
  • 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之后,会报错.

  • 相关阅读:
    ssm 在不同的数据库中进行切换(开启事物禁用)
    引入xfire-all.jar后导致sping配置异常
    单点登录cas的最简单使用
    win10下cmd命令不能用
    前端json 两个重要的方法
    maven 工程下第三方jar 包的引入和打包 war
    idea 中main 方法不能运行
    从sqlServer 分页查询谈${}和#{}
    can与could区别
    线程同步与异步区别
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4486883.html
Copyright © 2011-2022 走看看