struts2的动态方法调用有三种方式
1、第一种方式:设置method属性
在Action类中定义一个签名与execute方法相同、只是名字不同的方法,如定义为:
public String login() throws Exception{}
然后在struts.xml文件中加一个<action>元素,并设置它的method属性。代码如下(核心代码):
<action name="loginMethod"
class="com.polaris.LoginAction" method="login">
<result>/result.jsp</result>
<result name="error">/error.jsp</result>
</action>
清单1:struts.xml部分内容
然后在JSP中表单的action设置为loginMethod。这样,Struts2就会去调用LoginAction中的loigin方法,而不会去调用execute()方法。
2、第二种方式:改变表单的action的设置内容
同第一种方式,定一个login方法。只是不需要改变struts.xml文件的内容。然后,在JSP页面中,设置表单的action为loginMethod!login.action。这样,Struts2也会去调用login方法,而不调用execute方法。其中,表单action="loginMethod!login.action" 中,loginMethod为struts.xml文件中<action> 元素的name属性值,login.action中的login为Action类中的方法名。注意:login.action的action不能少。
3、第三种方式:使用通配符
首先同上面两种方式,定一个login方法,然后在struts.xml文件中配置如下内容:
<action name="*Action"
class="com.xuxinhua1984.struts2.i18n.LoginAction" method="{1}">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
清单2:struts.xml部分内容
然后在JSP页面中,设置表单的action为loginAction,此处login为Action类中的方法名,这样struts.xml中的*Action就可以和loginAction模糊匹配了,然后,method="{1}"就相当于method="login"。这样一来就回到了第一种方式。
另外,这种方式甚至结果类型对应的物理视图都可以用通配符。例如,如果想让登录失败后返回登录页,可以设置<result name="error">/{1}.jsp</result>。这样,此处的{1}也会被*号实际的内容替代,此处为login,所以就转发回login.jsp页面了。
对于以上三种方式,尽量使用第一、第二种方式,感觉第三种方式是比较灵活,但是也容易产生混乱,且容易出错。
分享到:
相关推荐
Struts2动态方法调用 包括 1.js方法调用 2.普通的表单提交调用 3.通配符
NULL 博文链接:https://takeme.iteye.com/blog/1631525
NULL 博文链接:https://cdxs2.iteye.com/blog/1925232
Struts2_动态方法调用,使用struts2架构的动态方法进行资源调用
主要介绍了详解Struts2动态方法调用,涉及调用方法的代码,具有一定参考价值,需要的朋友可以了解下。
struts 1框架的动态调用也许你会,但是struts2 的动态调用更经典,这个文档让你玩转struts 2 动态调用.......
struts动态访问调用之一,采用method属性,同一个Action内的不同方法来响应用户请求
struts2动态调用之通配符,相当于是改进的method动态调用方法,减少对同一action不同method的多次配置
struts2利用通配符调用同一个Action里面不同的方法,在struts.xml配置文件中将请求方法的不相同部分抽象成“*".
struts2中动态方法的调用,如何实现动态方法调用
本文档主要介绍了struts2中API耦合的三种方法以及动态方法调用(Dynamic Method Invoked)的两种方法,希望对你有所帮助,谢谢!
利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...
带有分页,分页跳转,部门员工表的CRUD,hibernate注解方式操作实体,struts2动态方法调用
Struts2中直接和间接访问ServletAPI以及动态方法调用之感叹号
Struts2调用EJB异常项目包,出现的问题以及解决方案参见EJBStruts.zip中的说明.txt 以及博客 http://blog.csdn.net/icecream0/article/details/7167853
struts2实验一:动态方法调用+请求参数的获取+简单的表单数据验证
主要介绍了struts中动态方法调用使用通配符的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
参考博文:http://blog.csdn.net/u011638419/article/details/41773411
Webservice+spring+struts小例子,简单方法调用
如题,Struts2登陆+输入验证+动态调用实例,使用MyEclipse导入直接就可以运行