如何解决action太多的问题??
我们因为需要不同的方法,所以往往建立很多不同的类,但是每个类中往往仅仅几行代码,不仅浪费了时间,而且配置起来也很繁琐,所以,建立一个共有的类,然后根据以下方式来操作,从而解决类太多的问题。
1.method方式:建立一个Action类,在类中编写不同的方法,在不同的方法中处理不同的请求。
在struts.xml中配置method属性,让不同的action指向同一个Action类的不同方法。
2.感叹号方式:
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
不需要配置method,直接用!方法名的方式来调用。
DynamicMethodInvocation =动态方法调用
3.通配符方式(官网推荐) “约定大于配置”
checkLogin
checkExists
add
delete
modify
<action name="*" class="myuser.UserAction" method={1}>
</action>
以用户注册的方式,来和大家具体的讲解:
totalaction类:
View Code
method的方法中struts的配置:
1 <struts> 2 <constant name="struts.action.extension" value="action,,"></constant> 3 <constant name="struts.devMode " value="true"></constant> 4 <package name="user" namespace="/" extends="struts-default"> 5 <action name="checklogin" class="user.TotalAction" method="checkLogin"> 6 </action> 7 <action name="CheckUser" class="user.TotalAction" method="checkExists"> 8 </action> 9 <action name="add" class="user.TotalAction" method="add"> 10 <result name="success">/userlist.jsp</result> 11 </action> 12 </package> 13 </struts>
2,感叹号方式struts的配置。
1 <struts> 2 <constant name="struts.action.extension" value="action,,"></constant> 3 <constant name="struts.devMode " value="true"></constant> 4 <constant name="struts.enable.DynamicMethodInvocation" value="true" /> //需要配置 5 <package name="user" namespace="/" extends="struts-default"> 6 <action name="user" class="user.TotalAction">//不需要method方法,只需在jsp页面加载时用!表示。 7 <result name="success">/userlist.jsp</result> 8 </action> 9 </package> 10 </struts>
如:$.post("user!checkExists",。。。。。
3.通配符方式(官网推荐) “约定大于配置”
1 <struts> 2 <constant name="struts.action.extension" value="action,,"></constant> 3 <constant name="struts.devMode " value="true"></constant> 4 <constant name="struts.enable.DynamicMethodInvocation" value="true" /> 5 <package name="user" namespace="/" extends="struts-default"> 6 <action name="*" class="user.TotalAction" method="{1}" >//只需要将其改变成此方式。而jsp页面改变为方法名即可。此方式较为常用。 7 <result name="success">/userlist.jsp</result> 8 </action> 9 </package> 10 </struts>
如::<form action="add" method="post">