動態(tài)方法調用就是為了解決一個Action對應多個請求的處理,以免Action太多
1.指定method屬性的方法
直接上代碼
這個是java類文件
public class HelloWorldAction extends ActionSupport {
@Override
public String execute() throws Exception{
System.out.println("執(zhí)行action");
return "123";
}
public String add(){
return SUCCESS;
}
public String update(){
return SUCCESS;
}
}
這個是struts.xml文件
<struts>
<package name="default" namespace="/" extends="struts-default">
//沒有method屬性,就對應execute()方法
<action name="helloworld" class="com.zyj.struts.HelloWorldAction">
<result name="123" >/WEB-INF/MyJsp.jsp</result>
</action>
//name對應瀏覽器請求的url
//method對應類中的方法名
<action name="add" method="add" class="com.zyj.struts.HelloWorldAction">
<result>/WEB-INF/add.jsp</result>
</action>
//name對應瀏覽器請求的url
//method對應類中的方法名
<action name="update" method="update" class="com.zyj.struts.HelloWorldAction">
<result>/WEB-INF/up.jsp</result>
</action>
</package>
</struts>
2.通配符方式
struts.xml文件內容:
<struts>
//據(jù)說struts2.5之后必須要加strict-method-invocation="false" ,之前的版本反正我沒用過;
<package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
//name中的*號就是通配符,name中不能有斜杠,星號是有順序的,序列從1開始
//要使用*號的內容,就要使用大括號{},大括號內的數(shù)字就是第幾個*星號的意思
<action name="*_*" method="{2}" class="com.zyj.struts.{1}Action">
<result name="123" >/WEB-INF/MyJsp.jsp</result>
<result >/WEB-INF/{2}.jsp</result>
</action>
</package>
</struts>