12.Struts2_通配符映射
1.通配符映射:
一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系
如:
<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>
上面和下面配置的效果相同
<action name="czy_*" class="com.qbz.struts2_02.GG_CZY" method="{1}"><result name="{1}">/WEB-INF/page/{1}.jsp</result></action>
2.通配符映射规则
1.若找到多个匹配, 没有通配符的那个将胜出
2.若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
3.被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串....
4.{0} 匹配整个 URI
5.若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
6.可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用\.**
规则:
1.若找到多个匹配, 没有通配符的那个将胜出
<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} 匹配第二个子串{0} 匹配整个 URI
<!-- 当请求是 /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
<!-- 若请求是 /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 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
<!-- 若请求是 /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>
<!-- 若请求是 /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.可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用\.**
12.Struts2_通配符映射相关推荐
- Struts(七):action配置文件之通配符映射
通配符映射:一个Web应用可能有成百上千个action声明,可以使用struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系. 通配符映射规则: 若找到多个匹配,没有通配符的那个将胜 ...
- [原创]java WEB学习笔记58:Struts2学习之路---Result 详解 type属性,通配符映射
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Struts2 学习系列 (3) 跳转类型与通配符映射
2019独角兽企业重金招聘Python工程师标准>>> 跳转类型 chain:Action链式处理的结果类型,也就是将结果转发到这个action中. chart:整合JFreeCha ...
- struts2的动态方法调用(DMI)和通配符映射
动态方法调用 1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 [html] view plaincopy struts.enable.DynamicMethodInvocatio ...
- Struts2通配符映射/Struts action name=/*/* method={2} class=com.jxc.action.{1}Action result
struts2的关于method="{1}"意思详解 <action name= "Login_* " method= "{1} &qu ...
- 《转》IIS中配置通配符应用程序映射
本文转载自龚赤兵 电子工业出版社,如给您带来不便之处,请联系博主. eb开发新体验:ASP.NET 3.5 MVC架构与实战>第13章网站部署,本章主要实现了如何在IIS 6.0中一步一步地成功 ...
- Java核心技术·卷I(原书第12版)
内容介绍... 随着Java的发展,<Java核心技术>从第1版到第11版一路走来,受到了广大Java程序员的青睐,成为最畅销的Java经典书籍. 这本书已经过彻底的修改,涵盖了Java ...
- 使用cat /proc/进程id/maps 查看进程内存映射
proc/<PID>/maps 查看进程的虚拟地址空间是如何使用的. 该文件有6列,分别为: 地址:库在进程里地址范围 权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有: 偏 ...
- SpringMVC 学习系列 (3) 之 URL请求到Action的映射规则
2019独角兽企业重金招聘Python工程师标准>>> 在系列(2)中我们展示了一个简单的get请求,并返回了一个简单的helloworld页面.本篇我们来学习如何来配置一个acti ...
最新文章
- 笛卡尔积 php,PHP自定义函数生成笛卡尔积
- npm install 报错:ERR! code EINTEGRITY 解决方案
- 程序员永远不要再犯的5个编程错误
- 回文java_回文 Java
- java中有界队列的饱和策略(reject policy)
- Unity游戏中的一些规范和优化建议
- 各种震撼的慢镜头,奇怪的知识又增加了!​
- 基于短文本的食源性疾病事件探测技术
- linux tomcat 发布servlet,SpringBoot项目使用war包部署至云服务器(Linux+Tomcat)
- 注意了,有关学习前端的一些“坑”,别踩!
- 阿里钉钉向1000万企业组织免费开放在家办公系统
- 第1138期AI100_机器学习日报(2017-10-30)
- 亲测有效,解决C盘空间不足问题
- System memory,AGP memory和video memory【转】
- 广义最小二乘法的基本思想是什么_解决异方差问题的方法可行广义最小二乘法fgls法.ppt...
- 南卫理公会大学 计算机排名,南卫理公会大学美国大学排名及专业排名汇总(USNEWS美国大学排名版)...
- 无法启动此程序,因为计算机中丢失vcruntime140.dll”的解决方法
- 渗透测试入门19之渗透测试工具2
- 2020年全国各省、各个地级市、各县的10米分辨率的土地利用数据的制作方法与获取
- FBX格式mesh解析与加载(一)