struts2中action中的通配符
struts中一个正常的最普通不过的action是这样子的
<package name="default1" namespace="/gys" extends="struts-default">
<action name="registAction" class="com.b.Regist" method="test">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>
使用通配符1
<package name="default1" namespace="/gys" extends="struts-default">
<action name="*Action" class="com.b.Regist" method="test">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>
action中的*会和你的请求路径想匹配.符合要求的就进行下一步执行.*表示长度不为0的字符.
比如:insertAction,updateAction都是符合要求的.
使用通配符2
<package name="default1" namespace="/gys" extends="struts-default">
<action name="*Action" class="com.b.Regist" method="{1}">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>
这里method="{1}"表示通配符的占位符.
占位符都是从1开始的,不是从零考试的.
使用通配符3
<package name="default1" namespace="/gys" extends="struts-default">
<action name="*_*Action" class="com.b.{2}" method="{1}">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>
这里的{2}表示的就是第二个*了
使用通配符4
<package name="default1" namespace="/gys" extends="struts-default">
<action name="*_*_*Action" class="com.b.{2}" method="{1}">
<result name="{3}">/1/{3}.jsp</result>
<result name="{3}">/1/{3}.jsp</result>
</action>
</package>
通配符还可以进行内部的占位符的匹配
使用通配符5
<package name="default1" namespace="/gys" extends="struts-default">
<action name="registAction" class="com.b.Regist" method="test">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
<action name="*Action" class="com.b.RegistT" method="{1}">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>
当精确匹配和模糊匹配都符合请求时,使用精确匹配
当模糊匹配都符合时,按照顺序,谁第一,就执行那个action.
默认Action:
在某些情况下,用户请求非常简单,不需要系统过多的处理,或者这些请求只是一个简单的转发.
对于只是简单的超链接请求,可以通过name为*的Action实现(最好放在最后).除此之外,struts2还允许在容器中定义一个默认的Action.
<default-action-ref name="errorReq"></default-action-ref>
<action name="errorReq">
<result>/error.jsp</result>
</action>
这段代码必须放在package里的第一位,如果放在其他action之后,会报错.
struts2中action中的通配符的更多相关文章
- 在struts2的action中操作域对象(request、session)
在struts2的Action中,操作域对象一共有三种方式: 1.ActionContext(与servelt API无关联): //相当于request ActionContext.getConte ...
- JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- 【struts2】action中使用通配符
在以前的学习中,<action>元素的配置,都是用明确的配置,其name.class等属性都是一个明确的值.其实Struts2还支持class属性和method属性使用来自name属性的通 ...
- 9.Struts2在Action中获取request-session-application对象
为避免与Servlet API耦合在一起,方便Action类做单元测试. Struts2对HttpServletRequest.HttpSession.ServletContext进行了封装,构造了三 ...
- struts2的action中获得request response session 对象
在struts2中有两种方式可以得到这些对象 1.非IoC方式 要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态 ...
- struts2对action中的方法进行输入校验---xml配置方式(3)
上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍第二种方式:xml配置文件 首先我们来看一个样例: ValidateAction.java: package co ...
- struts2对action中的方法进行输入校验(2)
struts2输入校验流程: 1.类型转换器对请求參数运行类型转换,并把转换后的值赋给aciton中的属性 2.假设在运行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext, ...
- jap页面获取struts2中action中变量的值
在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在 ...
- 关于在Struts2的Action中使用domain模型接收参数的问题
最近在搭建一个最新的ssh2框架,今天在调试的时候,发现了一个以前一直没有注意过的问题,我在Action中使用域模型的方式去接收jsp画面中的参数的时候,发现参数总是接收不完,头一次遇到这种问题,现在 ...
随机推荐
- unity, 取消ugui button响应键盘
http://answers.unity3d.com/questions/859460/button-is-being-triggered-by-spacebar-after-clicke.html
- shell 工具
http://zouqingyun.blog.51cto.com/782246/1696340
- jquery.find()
http://www.365mini.com/page/jquery-find.htm
- 基于spring-boot的web应用,ckeditor上传文件图片文件
说来惭愧,这个应用调试,折腾了我一整天,google了很多帖子,才算整明白,今天在这里做个记录和分享吧,也作为自己后续的参考! 第一步,ckeditor(本博文论及的ckeditor版本4.5.6)的 ...
- 【python】filter,map,reduce和lambda函数介绍
filter(function, iterable)map(function, iterable)reduce(function, sequence) filter将 function依次作用于ite ...
- Python 派生类子类继承类
1.创建list类的子类Namedlist,初始化新类,创建新对象实例johnny,检查对象类型,并使用list的一些功能来存储数据 >>> class Namedlist(list ...
- C++设计新思维的traits和policy
http://blog.csdn.net/zhoudaxia/article/details/4486487 这篇博客讲得挺清楚的,本来想自己写写看总结下的,不过看了下这个文章已经写得很清楚了,倒没有 ...
- 【Linux】之shell特殊变量整理
目录 1. 特殊变量列表 2. 特殊说明 在shell中变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即p ...
- 单源最短路径——Floyd算法
正如我们所知道的,Floyd算法用于求最短路径.Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3). Floyd算法的基本思想如下:从任意 ...
- Hadoop学习4--安装Hadoop
首先献上Hadoop下载地址: http://apache.fayea.com/hadoop/core/ 选择相应版本,点一下,直接进行http下载了. 对原来写的一篇文章,相当不满意,过于粗糙了,于 ...