Sturts2方法调用三种方式

       Sturts2方法调用有三种方式,各有各的优缺点,开发人员要根据自己项目的需要,看适合哪一种方式。

       Sturts2方法调用有三种方式:1、动态方法调用

                                           2、在<action>中配置method属性

                                           3、使用通配符

       下面通过一个实例,来一一介绍:


1、动态方法调用

格式:action名称+!+方法名称+后缀

Struts.xml配置文件:

<package name="user-package" extends="struts-default">
		<action name="user" class="com.lf.zym.struts2.UserAction">
			<result>/success.jsp</result>
		</action>
</package>
调用方式:

<span style="white-space:pre">	</span><a href="user!add.action">添加用户</a><br>
    	<a href="user!del.action">删除用户</a><br>
    	<a href="user!modify.action">修改用户</a><br>
    	<a href="user!list.action">查询用户</a><br>

动态调用参数配置,默认为ture,可以调用。如果不想调用,则需要设置为false

	<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

2、指定mehtod属性

配置文件的配置:action的命名可以自己随意命名,只要符合规范即可,

          method="方法名称"

Struts.xml文件配置

<span style="white-space:pre">	</span><package name="user-package" extends="struts-default">
		<action name="addUser" class="com.lf.zym.struts2.UserAction" method="add">
			<result>/success.jsp</result>
		</action>
		<action name="delUser" class="com.lf.zym.struts2.UserAction" method="del">
			<result>/success.jsp</result>
		</action>
		<action name="modifyUser" class="com.lf.zym.struts2.UserAction" method="modify">
			<result>/success.jsp</result>
		</action>
		<action name="findUser" class="com.lf.zym.struts2.UserAction" method="find">
			<result>/success.jsp</result>
		</action>
	</package>
页面调用:配置文件中配置的action的名称,只要对应就行

<span style="white-space:pre">	</span><a href="addUser.action">添加用户</a><br>
    	<a href="delUser.action">删除用户</a><br>
    	<a href="modifyUser.action">修改用户</a><br>
    	<a href="findUser.action">查询用户</a><br>

     使用这种方法的缺点就是配置量比较大,如果有过的的Action,那这个方法是绝对不使用的。代码量大,也不好维护。所以引用了通配符的方式,来降低配制量。

3、通配符

Struts.xml配置文件:

	<package name="user-package" extends="struts-default">
		<action name="*User" class="com.lf.zym.struts2.UserAction" method="{1}">
			<result>/{1}Success.jsp</result>
		</action>
	</package>
页面的调用:

<span style="white-space:pre">	</span><a href="addUser.action">添加用户</a><br>
    	<a href="delUser.action">删除用户</a><br>
    	<a href="modifyUser.action">修改用户</a><br>
    	<a href="findUser.action">查询用户</a><br>

可能遇到的问题:

      三种方式实现起来都不难,但是使用的时候可能会遇到这样那样的问题,比如说报异常,动态方法调用无效。可能是因为我们关闭了Struts2的动态方法调用开发。导致如下错误:    

解决方法:将struts.enable.DynamicMethodInvocation设置为true.

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>

小结:

       以上是Struts2的Action中的方法如何调用的实现方式,具体项目中用哪一种,自己选择合适的就好,但是本人认为使用通配符的方式比较爱好。既不用考虑Action太多,使得配置量太大,也不需要使用“!”,使用起来比较简便。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值