Struts2.x中action的几种配置方法

时间:2022-07-27 19:13:07
配置Action的方法


 如何解决action太多的问题??



                  

1.建立多个Action类  就是每个方法都对应于一个action,代码量比较大,不方便!   

2.method方式:建立一个Action类,在类中编写不同的方法,在不同的方法中处理不同的请求。
  在struts.xml中配置method属性,让不同的action指向同一个Action类的不同方法。\
  如:<action name="checkLogin" class="myuser.UserAction" method="checkLogin"></action>
      <action name="checkExists" class="myuser.UserAction" method="checkExists"></action>
      <action name="adduser" class="myuser.UserAction" method="add">


3.感叹号方式:
 <constant name="struts.enable.DynamicMethodInvocation" value="true" />
 不需要配置method,直接用!方法名的方式来调用。


 DynamicMethodInvocation =动态方法调用
 如:
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="user" namespace="/" extends="struts-default">
<action name="user" class="myuser.UserAction">
<result name="success">/userlist.jsp</result>
</action>
</package>
调用的时候要这么写 如:action="user!add" post(user!checkLogin) post(user.checkLogin)等等!


4.通配符方式(官网推荐) 
 
   checkLogin    
   checkExists   
   add           
   delete        
   modify        

引入: <action name="*" class="myuser.UserAction" method={1}>

注意:这些action代码都是写在struts.xml文件中的

 name="*"假如*为add ,那么后面的方法也是add的方法,都是相对应的! 

 如:
 调用的时候就只要写方法的名字,如:action="add" post(checkLogin) post(checkExists)
 </action>