Struts2中动态方法的调用
Struts2中动态方法调用就是为了解决一个action对应多个请求的处理,以免action太多。
主要有一下三种方法:指定method属性、感叹号方式和通配符方式。推荐使用第三种方式。
1.指定method属性
LoginAction.java
public class LoginAction extends ActionSupport{
public String execute (){
return "success" ;
}
public String add(){
return "add" ;
}
public String update(){
return "update" ;
}
}
struts.xml,配置多个action标签。
<struts >
<package name= "default" namespace ="/" extends="struts-default" >
<action name= "LoginAction" class="com.struts2.action.LoginAction" method ="execute" >
<result name= "success">/success.jsp </result>
</action>
<action name= "addAction" class="com.struts2.action.LoginAction" method ="add" >
<result name= "add">/add.jsp </result>
</action>
<action name= "updateAction" class="com.struts2.action.LoginAction" method ="update" >
<result name= "update">/update.jsp </result>
</action>
</package>
</struts >
当访问路径为http://localhost:8088/jspToAction1/LoginAction.action时,跳转到success.jsp
当访问路径为http://localhost:8088/jspToAction1/addAction.action时,跳转到add.jsp
当访问路径为http://localhost:8088/jspToAction1/updateAction.action时,跳转到update.jsp
2.感叹号方式
LoginAction.java不变如1所示。
struts.xml
struts.enable.DynamicMethodInvocation = true 表示动态方法调用
<struts >
<package name= "default" namespace ="/" extends="struts-default" >
<action name= "LoginAction" class="com.struts2.action.LoginAction" method ="execute" >
<result name= "success">/success.jsp </result>
<result name= "add">/add.jsp </result>
<result name= "update">/update.jsp </result>
</action>
</package>
<constant name= "struts.enable.DynamicMethodInvocation" value="true" ></constant>
</struts >
访问链接时:http://localhost:8080/struts2Demo/LoginAction!update.action,跳转到update.jsp
访问链接时:http://localhost:8080/struts2Demo/LoginAction!add.action,跳转到add.jsp
3.通配符方式(最常用的方式也是struts官方推荐的方式)
LoginAction.java同样不变,struts.xml改为如下:
<struts >
<package name= "default" namespace ="/" extends="struts-default" >
<!-- {1}通过*的方式传递进来 -->
<action name= "LoginAction_*" class="com.struts2.action.LoginAction" method ="{1}" >
<result name= "success">/{1}.jsp</result>
<result name= "add">/{1}.jsp</result>
<result name= "update">/{1}.jsp</result>
</action>
</package>
<constant name= "struts.enable.DynamicMethodInvocation" value="false" ></constant>
</struts >
"LoginAction_*"中的“*”就代表{1},通过链接的方式进行匹配、传值,从而达到一个动态访问的效果。如果name=""中有多个”*“,则第一个用{1}来表示,第二个有{2}来表示,以此类推。
访问链接时: http://localhost:8088/jspToAction1/HelloWorld_add.action 跳转到add.jsp
访问链接时: http://localhost:8088/jspToAction1/HelloWorld_update.action 跳转到update.jsp
**************************************************************************************************
如若转载请注明出处,谢谢。By奋斗的小蘑菇
Struts2中动态方法的调用的更多相关文章
- Action中动态方法的调用 Action中通配符的使用 Result的配置
Action中动态方法的调用 动态方法调用(Dynamic Method Invocation,DMI) 标识符:! 一.通过以下选中的文件来查看是否禁止调用动态方法
- struts2中的方法的调用
转载:http://blog.csdn.net/hephec/article/details/41808585 在Struts2中方法调用概括起来主要有三种形式: 第一种方式:指定method属性 & ...
- 第三章Struts2 Action中动态方法调用、通配符的使用
01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...
- Struts2 Action中动态方法调用、通配符的使用
一.Struts2执行过程图: 二.struts2配置文件的加载顺序 struts-default.xml---struts-plugin.xml---struts.xml 具体步骤: 三.Actio ...
- Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置
Action动态方法的调用 首先我们需要在struts.xml中去配置一个常量值如下 那么去哪找呢?找到Struts-core.jar并打开 method属性 <action name=&quo ...
- 分享知识-快乐自己:Struts2(动态方法、动态结果、通配符、方法内部跳转、action跳转、OGNL 的使用及注意事项)
这里主要以案例演示:涵盖以下知识点 1.动态方法调用:使用关键 符号 ! 进行操作 例如:/命名空间 ! 方法名 2.动态结果集:就是说,通过后台返回的结果 ${} 获取,重定向到符合预期的页面. ...
- InvocationHandler中invoke()方法的调用问题
转InvocationHandler中invoke()方法的调用问题 Java中动态代理的实现,关键就是这两个东西:Proxy.InvocationHandler,下面从InvocationHandl ...
- 分析spring事务@Transactional注解在同一个类中的方法之间调用不生效的原因及解决方案
问题: 在Spring管理的项目中,方法A使用了Transactional注解,试图实现事务性.但当同一个class中的方法B调用方法A时,会发现方法A中的异常不再导致回滚,也即事务失效了. 当这个方 ...
- struts2.3.15.3中动态方法调用默认是关闭的
初学ssh,用的struts2.3.15.3,使用了如下表单: <form action="/spring3/index/login.action" method=" ...
随机推荐
- J2EE版本
Different versions of JEE: Note: JPE (Java Professional Edition) project announced in May 1998 at Su ...
- 如何编写高质量的Javascript代码
1.避免全局变量,因为全局变量容易发生名称上的冲突,可维护性不好. a,使用命名空间 b,使用闭包 c,在函数内部使用var声明 2.编写可维护的代码 a.可读性 b.连续性 c.预见性 d.看起来是 ...
- mybatis原理
http://blog.csdn.net/column/details/mybatis-principle.html?page=1
- VS中Qt的探索02
边看C++ GUI QT4教程,边在VS2010中进行编程学习探索. 在使用Qt设计师时,其中每一个对象的ObjectName属性是非常重要的,在程序功能的实现过程中,需要不断的使用该变量名. 当所有 ...
- spring框架学习(四)自动装配
set注入和构造注入有时在做配置时比较麻烦.所以框架为了提高开发效率,提供自动装配功能,简化配置.spring框架式默认不支持自动装配的,要想使用自动装配需要修改spring配置文件中<bean ...
- upupw一键绿色免安装环境包
项目测试,选择upupw环境包 下载nginx版本,解压即可使用 任务就是要把我电脑上的项目test.com提供给公司局域网同事访问,如果是apache的话,前面的wampserver已经讲过了. 1 ...
- 学习笔记找到多个具有相同 ID“_header”的控件,FindControl 要求控件具有唯一的 ID.
解决 找到多个具有相同 ID“_header”的控件,FindControl 要求控件具有唯一的 ID. private void DisplayHotBooks() { //获取 ...
- Android在代码中使用布局文件中的一个组件
使用前必须要把组件与其父组件的关系断开,比如有一个组件的名称为scrollChildLayout,则可以使用下面的代码进行分离 ((ViewGroup)scrollChildLayout.getPar ...
- CSS3 仿微信聊天小气泡
今天给大家分享一个我刚做的项目中的一个小案例, 因为我们在做一个聊天的功能,之前的聊天页面UI很丑,我就不在这里展示给大家了. 现在就教大家怎么用css3制作一个和微信聊天界面一样的页面. 首先给大家 ...
- java 从数据删除指定值
public class ArrayRemoveValue { public static void main(String[] args) { Integer[] _IntArray = new I ...