【struts2】action中使用通配符
在以前的学习中,<action>元素的配置,都是用明确的配置,其name、class等属性都是一个明确的值。其实Struts2还支持class属性和method属性使用来自name属性的通配符。
1)接下来看看使用通配符的示例,如果我们使用以下<action>配置:
<action name="*_*" class="cn.javass.action.action.{1}Action" method="{2}"> <result name="toWelcome">/s2impl/welcome.jsp</result> </action>
在上面的配置中:
name属性的值中“*”代表长度不为0的任意字符串,因此,它可以响应的action只需要名称中间有一个下划线即可。比如页面可访问的action名称为:HelloWorld_create.action、HelloWorld _update.action等等。
在name属性定义了通配符之后,class属性使用第一个通配符(使用{1}作为占位),method属性使用第二个通配符。
如果使用HelloWorld_create.action作为访问的action名称的话,struts.xml中action名称为HelloWorld_create,第一个通配符匹配HelloWorld,第二个通配符匹配create。因此,由cn.javass.action.action.HelloWorldAction的create方法来响应。
2)那么,对于<result>元素,能不能也使用<action>元素的name属性定义的通配符呢?答案是可以的,假如有如下的配置:
<action name="*_*_*_*" class="cn.javass.action.action.{1}Action" method="{2}"> <result name="{3}">/${folder}/{4}.jsp</result> </action>
3)在使用通配符的时候,也有可能不止一个使用通配符的<action>元素可能匹配这次URL的访问,看以下的配置文件:
<action name="HelloWorld_create" class="cn.javass.action.action.HelloWorldAction" method="create2"> <result name="toWelcome">/s2impl/welcome.jsp</result> </action> <action name="*_*" class="cn.javass.action.action.{1}Action" method="{2}"> <result name="toWelcome">/s2impl/welcome.jsp</result> </action>
这时候,如果访问“/helloworld/HelloWorld_create.action”,Struts2首先会查找是否有精确匹配的<action>元素,这时候无论以上<action>元素以什么顺序出现,Struts2肯定会先找到并使用精确匹配的<action>元素。但是,如果没有精确匹配的<action>元素,则Struts2会找到第一个匹配的使用通配符的<action>元素来使用。
通配符对于那些简单的CRUD的工程或软件原型来说,只要Action的包名、Action的类名、对应的方法名写的有规律的应用,能大大简化配置的工作。
参考资料:http://www.iteye.com/topic/1124526
转载于:https://www.cnblogs.com/ningvsban/p/3734574.html
【struts2】action中使用通配符相关推荐
- struts2 action中result参数详解
chain 用来处理Action链 com.opensymphony.xwork2.ActionChainResult dispatcher 用来转向页面,通常处理JSP org.apache.str ...
- struts2 Action中获取session,request,respon值
在struts2中有两种方式可以得到这些对象 1.非IoC方式 Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态方法getConte ...
- struts2 action 中autowired 不能注入
一.pom.xml <dependency><groupId>org.apache.struts</groupId><artifactId>struts ...
- struts2 的一个action中配置多个result input
主题:struts2 的一个action中配置多个result input 讨论下 本文来自: 浪曦视频在线 作者: hoojo 发表于: 2009-6-4 19:05 阅读: 2005 人 收藏 看 ...
- struts2实验2:struts2.xml action中* ,{}以及${}
p.s 关键在于struts.xml中的匹配,使用* ,{}以及${}可以让代码更加简洁清晰 代码核心思路 在struts.xml中通过路由(url)去指定控制逻辑的Action中的方法,例如 < ...
- Struts2 注解中跳转 action
转自:http://hi.baidu.com/fo_guo/item/71f6b636fec1e8cf382ffa00 在xml中跳转action我想大家都是会的,那么注解中跳转其实也很类似,废话不多 ...
- struts2:在Action中使用Servlet的API,设置、读取各种内置对象的属性
有两种方式可以实现在Action中使用Servlet的API.一种是使用org.apache.struts2.ServletActionContext类,另一种是使用com.opensymphony. ...
- struts2配置文件中action的name属性
struts2配置文件中action的name属性的第一个字符不要加斜杠 <action name="see" class="baoxiuManage_seeAct ...
- struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式
本文演示了JSP中获取HTTP参数的几种方式,还有action中获取HTTP参数的几种方式. 1. 创建JSP页面(testParam.jsp) <%@ page language=" ...
最新文章
- flask 与layui冲突
- Java并发编程实战~Guarded Suspension模式
- [Node.js] node.js入门
- 基于JAVA+SpringMVC+Mybatis+MYSQL的在线论坛管理系统
- 类代理java设计模式---动态代理(简单笔记)
- 汉语诗词 LaTeX 排版样式
- 常用的电子产品安规基础标准 - IEC Standards(CB转换或各国安规标准)
- mtk camera faq
- android代码修改view的宽度,代码动态改变view的大小
- 成语接龙快速接到“一个顶俩” (附api)
- android x86 uefi 安装教程,如何在Hyper-V上安装android-x86系统
- idea 占用内存优化调整
- 进入安全模式后重新启动计算机,进入Win7安全模式方法一:开机按F8键进入 我们在重启或者电脑开机的时候...
- 平分法及牛顿法求解平方根
- 地图编辑器开发(五)
- 前端JS base64转图片
- 综合培养学生脑力思维的少儿编程
- 计数器概念和异步二进制计数器
- 芯片制程3nm5nm7nm
- PowerBuilder10在win7上的无法启动的解决
热门文章
- c语言输出最后不带空格,新人提问:如何将输出时每行最后一个空格删除
- 089_学习过的html标签
- 025_CSS框模型概述
- mysql 查询两表 两列 比较大小写_mysql 查询表中列的数据不区分大小写的解决
- android沉浸代码,3秒钟搞定Android沉浸式状态栏
- python类实例_类和实例
- python随机生成数字_Python 中生成 0 到 9 之间的随机整数
- 不需要网络的调频收音机_测试工程师真的不需要懂网络知识么?
- python计算3j系数_python数值基础知识浅析
- 一周一论文(翻译)——[SIGMOD 2016] RDMA over Commodity Ethernet at Scale