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的动态方法调用开发。导致如下错误:    Sturts2方法调用三种方式_第1张图片

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

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

小结:

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

你可能感兴趣的:(Sturts2方法调用三种方式)