Action method invocation
在Struts中使用DispatchAction及設定parameter來操做同一個Action的不同Method,可以減去不少的Action數量.
在Struts2中,可以使用wildcard來達成.如下列這個Action.
MyAction.java
public class MyAction extends ActionSupport {
public String input() {
return "patha";
}
public String output() {
return "pathb";
}
}
然後在struts.xml中以"*"來代表特定組合的文字,再以"{num}"取用.
struts.xml
<package name="myaction" namespace="/struts2" extends="struts-default">
<action name="myaction_*" method="{1}" class="MyAction">
<result name="patha">
/jsp/inputResult.jsp
</result>
<result name="pathb">
/jsp/outputResult.jsp
</result>
</action>
</package>
這樣的話執行
http://localhost:8080/mystruts/struts2/myaction_input.action
會呼叫MyAction.input()->patha
而下列的URL
http://localhost:8080/mystruts/struts2/myaction_output.action
會呼叫MyAction.output()->pathb
看起來便利性上兩者相差不遠,不過wildcard的用途還不止如此....
沒有留言:
張貼留言