zoukankan      html  css  js  c++  java
  • struts2 action通配符

    首先,看一个struts2的配置文件:

    <package name="actions" extends="struts-default" namespace="/actions">
      <action name="Student*"class="com.bjsxt.struts2.action.StudentAction" method="{1}">
       <result>/Student{1}_success.jsp</result>
      </action>
    </package> 

    这里,"{1}"表示第1个*,例如,当请求以下路径时:

    引用
    http://localhost:9000/Struts2_0600_ActionWildcard/actions/Studentadd


    *为add,因此method="add",返回的页面为/Studentadd_success.jsp
    即实际调用的是StudentAction中的add方法。

    struts2的配置文件还可以更加简洁,即在action的class中使用通配符,如下:

    <package name="actions" extends="struts-default" namespace="/actions">   
       <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">   
           <result>/{1}_{2}_success.jsp</result>          
       </action>         
    </package>

    使用两个通配符,{1}代表第一个*,{2}代表第二个*号。
    这个配置文件的意思是调用{1}Action的{2}方法,返回到{1}_{2}_success.jsp这个页面。例如,当请求一下路径时:

    引用

    http://localhost:9000/Struts2_0600_ActionWildcard/actions/Teacher_add


    其中{1}为Teacher,{2}为add,即实际调用的是TeacherAction类中的add方法,返回到Teacher_add_success.jsp页面。

    可以看到,使用第二种通配符,配置文件非常简洁,即使增加类和方法,也不需要修改配置文件,因此推荐通过第二种方式使用通配符。

    Struts2配置中 Action 使用通配符

    1). Xml代码

       1. <action name="user*" class="com.UserAction" method="{1}"> 
       2.        <result name="succee">/logon/welcome.jsp</result> 
       3.        <result name="input">/logon/logon.jsp</result> 
       4. </action> 

    <action name="user*" class="com.UserAction" method="{1}">
           <result name="succee">/logon/welcome.jsp</result>
           <result name="input">/logon/logon.jsp</result>
    </action>

    比如当用户请求userLogon时,会被UserAction类处理,method{1}中{1}值为name属性中第一个*的值.

    2).Xml代码

       1. <action name="*Action_*" class="com.{1}" method="{2}"> 
       2.         <result name="succee">/logon/welcome.jsp</result> 
       3.         <result name="input">/logon/logon.jsp</result> 
       4. </action> 

    <action name="*Action_*" class="com.{1}" method="{2}">
            <result name="succee">/logon/welcome.jsp</result>
            <result name="input">/logon/logon.jsp</result>
    </action>

    当用户请求UserAction_logon时,会被UserAction类的logon方法处理
    与上面一样,class中{1}的值为name属性中第一个*的值,也就是UserAction,{2}的值为name属性中第二个*的值,即为logon

  • 相关阅读:
    ....
    CodeForces 375A(同余)
    POJ 2377 Bad Cowtractors (最小生成树)
    POJ 1258 AgriNet (最小生成树)
    HDU 1016 Prime Ring Problem(全排列)
    HDU 4460 Friend Chains(bfs)
    POJ 2236 Wireless Network(并查集)
    POJ 2100 Graveyard Design(尺取)
    POJ 2110 Mountain Walking(二分/bfs)
    CodeForces 1059B Forgery(模拟)
  • 原文地址:https://www.cnblogs.com/azhqiang/p/4670809.html
Copyright © 2011-2022 走看看