前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(12)Struts_通配符映射

(12)Struts_通配符映射

作者头像
qubianzhong
发布2018-09-19 13:06:02
4240
发布2018-09-19 13:06:02
举报
文章被收录于专栏:行者常至

通配符映射

一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系
代码语言:javascript
复制
        <action name="czy_save" class="com.qbz.struts2_02.GG_CZY" method="save">
            <result name="save">/WEB-INF/page/save.jsp</result>
        </action>
        <action name="czy_update" class="com.qbz.struts2_02.GG_CZY" method="update">
            <result name="update">/WEB-INF/page/update.jsp</result>
        </action>
        <action name="czy_delete" class="com.qbz.struts2_02.GG_CZY" method="delete">
            <result name="delete">/WEB-INF/page/delete.jsp</result>
        </action>
        <action name="czy_getCzys" class="com.qbz.struts2_02.GG_CZY" method="getCzys">
            <result name="getCzys">/WEB-INF/page/getCzys.jsp</result>
        </action>
上面和下面配置的效果相同
代码语言:javascript
复制
        <action name="czy_*" class="com.qbz.struts2_02.GG_CZY" method="{1}">
            <result name="{1}">/WEB-INF/page/{1}.jsp</result>
        </action>
通配符映射规则
  1. 若找到多个匹配, 没有通配符的那个将胜出
  2. 若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
  3. 被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…
  4. {0} 匹配整个 URI
  5. 若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
  6. 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 .
1.若找到多个匹配, 没有通配符( 即:精确匹配 )的那个将胜出
代码语言:javascript
复制
        <action name="czy_*" class="com.qbz.struts2_02.GG_CZY" method="{1}">
            <result name="{1}">/WEB-INF/page/{1}.jsp</result>
        </action>

        <!-- 如果请求 /czy_getCzys.action 将会执行没有通配符的 name="czy_getCzys" 的action -->
        <action name="czy_getCzys" class="com.qbz.struts2_02.GG_CZY" method="getCzys">
            <result name="getCzys">/WEB-INF/page/getCzys.jsp</result>
        </action>
2.若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
可见,uri匹配时是先精确匹配的,精确匹配不上时,再来对包含有通配符*的action进行匹配。
3. 被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…
代码语言:javascript
复制
<!-- 当请求是 /czy_save_show.action  时,就会调用GG_CZY.java 中的save方法,当返回值为"save"时,会转发到 /WEB-INF/page/show.jsp-->
        <action name="czy_*_*" class="com.qbz.struts2_02.GG_CZY" method="{1}">
            <result name="{1}">/WEB-INF/page/{2}.jsp</result>
        </action>
4.{0} 匹配整个 URI
代码语言:javascript
复制
        <!-- 若请求是 /czy_save 时,将会调用 GG_CZY.java 的czy_save方法 -->
        <action name="czy_*" class="com.qbz.struts2_02.GG_CZY" method="{0}">
            <result name="ok">/WEB-INF/page/Show.jsp</result>
        </action>
5.若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
代码语言:javascript
复制
<!-- 若请求是 /czy_save_show 将会调用 name="czy_*" 的action -->
        <action name="czy_*" class="com.qbz.struts2_02.GG_CZY" method="{1}">
            <result name="{1}">/WEB-INF/page/{1}.jsp</result>
        </action>

        <action name="czy_*_*" class="com.qbz.struts2_02.GG_CZY" method="{1}">
            <result name="{1}">/WEB-INF/page/{2}.jsp</result>
        </action>

代码语言:javascript
复制
        <!-- 若请求是 /czy_save_show 将会调用 name="czy_*_*" 的action -->    
        <action name="czy_*_*" class="com.qbz.struts2_02.GG_CZY" method="{1}">
            <result name="{1}">/WEB-INF/page/{2}.jsp</result>
        </action>

        <action name="czy_*" class="com.qbz.struts2_02.GG_CZY" method="{1}">
            <result name="{1}">/WEB-INF/page/{1}.jsp</result>
        </action>
6. 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用\.**
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年09月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通配符映射
    • 一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系
      • 上面和下面配置的效果相同
        • 通配符映射规则
          • 1.若找到多个匹配, 没有通配符( 即:精确匹配 )的那个将胜出
            • 2.若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
              • 可见,uri匹配时是先精确匹配的,精确匹配不上时,再来对包含有通配符*的action进行匹配。
                • 3. 被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…
                  • 4.{0} 匹配整个 URI
                    • 5.若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
                      • 6. 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用\.**
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档