动态方法调用和使用通配符定义
由请求参数指定调用action中的方法
struts1中采用 dispatchAction的方式
<aciton path="control/action" type="...dispatchAction" parameter="method"/>
/control/action?method=aaa
■ struts2中的两种方式
法1.动态方法调用
package struts2.demo.action;
public class DyAction{
private String msg;
public String add(){
this.setMsg("Add");
return "success";
}
public String list_del(){
this.setMsg("delete");
return "success";
}
public String execute(){
this.setMsg("execute");
return "success";
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
}
<action name="dy" class="struts2.demo.action.DyAction"> <result>/WEB-INF/page/dy.jsp</result> </action>
调用时 采用 http://127.0.0.1:8080/demo/dy!add
可以采用<constant name="struts.enable.DynamicMethodInvocation" value="false"/>禁用动态方法调用
法2.使用通配符调用
<action name="dy_*" class="struts2.demo.action.DyAction" method="{1}">
<result>/WEB-INF/page/dy.jsp</result>
</action>
*通配符可以使用多个 {n}(n=第几个*)
这样可以通过http://127.0.0.1:8080/demo/dy_add来调用add方法 通配符可以使用在 class 或者<result>中....