05 3月 2007

Struts2 Note -- (3)Action Method Invocation

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的用途還不止如此....

沒有留言: