在Action中如果存在多个方法时,我们有2种方式实现调用指定的方法。
1.使用struts2的动态方法调用
例如:
struts.xml配置文件
<struts>
<package name="hello"extends="struts-default"namespace="/hello/test">
<actionname="user">
<resultname="success">/WEB-INF/page/message.jsp</result>
</action>
</package>
<struts>
Action类:
public class HelloAction {
private String msg ;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String addUser(){
this.msg = "调用addUser";
return "success";
}
public String execute(){
this.msg = "调用execute";
return "success";
}
}
调用这两个方法:语法说明--action名字!+具体的方法名。但是这种方式struts2现在不推荐使用了
http://localhost:8080/struts2-09/hello/test/user!execute
http://localhost:8080/struts2-09/hello/test/user!addUser
2.使用通配符的方式
struts.xml配置文件
<action name="user_*"method="{1}">
<resultname="success">/WEB-INF/page/message.jsp</result>
</action>
Action类同上所示。
调用方法:
http://localhost:8080/struts2-09/hello/test/user_addUser.action
http://localhost:8080/struts2-09/hello/test/user_execute.action
这里的method={1}表示第一个*,因为可以有多个星。比如:name="user_*_*".