1.多方法控制器搭建:
说白了就是在action中写多写几个方法。。。之后配置文件配一下
如:
public class ThirdAction {
public String queryAllUser(){
return "queryAllUserOK";
}
public String deleteUser(){
return "deleteUserOK";
}
public String insertUser(){
return "insertUserOK";
}
public String updateUser(){
return "updateUserOK";
}
}
2.配置
(1)静态调用方法
基于每一个方法给出action(每个方法对应一个action)
如:
<package name="thirds" extends="struts-default" namespace="/third">
<action name="queryAllUser" class="com.struts21.action.ThirdAction" method="queryAllUser"></action>
<action name="deleteUser" class="com.struts21.action.ThirdAction" method="deleteUser"></action>
<action name="insertUser" class="com.struts21.action.ThirdAction" method="insertUser"></action>
<action name="updateUser" class="com.struts21.action.ThirdAction" method="updateUser"></action>
</package>
(2)动态方法调用
通过通过使用通配符对action的name属性和method属性动态调用
语法:
<action name=”自定义名称_*” class=”” method=”{1}”></action>
示例:
<package name="thirds" extends="struts-default" namespace="/third">
<action name="userAction_*" class="com.struts21.action.ThirdAction" method="{1}"></action>
</package>
说明:
a)每个请求到来时 * 都可以匹配到不同的内容
b)method中的 {1} 是一个占位符,此位置上会填充 * 当前匹配到的值(和name中*的值相同)
3.使用:
在设计多方法控制器时,尽量将逻辑相关的一组操作放到一个控制器中。
静态方法调用和动态方法调用的选择:
静态可读性强,动态配置简单,各有利弊。
调用方法:
静态调用url:/项目名/包名/action name
动态调用url:/项目名/包名/action name前缀+欲调用方法名