zoukankan      html  css  js  c++  java
  • 14.使用通配符

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

    建立struts2wildcard项目,此实例基本仿照前面前面第7点的实例改写而成。为了使用通配符,只需要改写配置文件即可。此实例未使用通配时的配置文件如下:

    <action name="addUser" class="com.asm.UserAction" method="addUser">

                         <result name="success">/user/addUser.jsp</result>
    </action>

    <action name="delUser" class="com.asm.UserAction" method="delUser">

                         <result name="success">/user/delUser.jsp</result>

    </action>

    <action name="queryUser" class="com.asm.UserAction" method="queryUser">

                         <result name="success">/user/queryUser.jsp</result>

    </action>

    <action name="updateUser" class="com.asm.UserAction" method="updateUser">

                    <result name="success">/user/updateUser.jsp</result>

    </action>

    我们注释掉上面的配置,使用通配符只需如下内容即可达到相同的效果:
    <action name="*User" class="com.asm.UserAction" method="{1}User">

                         <result name="success">/user/{1}User.jsp</result>

    </action>

    原理:当有.../addUser.action请求时,如果不能在当前应用中找到完全相同的addUser名字的Action时,通配符配置这时就起作用了,按通配原则,它便和上面的name="*User"相配成功,这里不难明了*此时代指的内容是add,再来看method恰恰是引用第一个*的内容,所以它的method此时的完整名为addUser,它刚好和com.asmUserAction中的addUser方法相对,所以它会去addUser方法,再来看下面的result配置所指代的页面,它也用到了{1},所以它的完整页面是/addUser.jsp。其实如果我们有良好的编程命名习惯,所有的Action我们都只需要进行一次配置。举例:规定所有的Action类都用XXXAction来命名,类中所有的CRUD方法都用add/del/update/query。Jsp页面也用add/del/update/query_XXX.jsp这样的形式。即配置文件可以写成如下形式:
    <action name="*_*" class="com.asm.{2}Action" method="{1}">

                         <result name="success">.../{1}_{2}.jsp</result>

    </action>

    Name中第一个*代表CRUD操作的名字,第二个*代表类的名字。所以访问链接地址举例如下:

    .../del_User.action将访问到User类的del方法,成功后跳到del_User.jsp页面。补充说明{0}是代表name中所有的*组合。

  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/sharpest/p/5580589.html
Copyright © 2011-2022 走看看