webwork中類似struts的DispatchAction的使用方法。
Posted on 2007-07-20 15:36 Hally 閱讀(774) 評論(2) 編輯 收藏 所屬分類: 學習隨筆
在struts中我們習慣使用dispatchaction,傳入method參數(http://www.xxxx.com/xxx.do?method=preAdd)
來決定執行Action里面的哪個方法,從而把某個模塊的諸如增、刪、改、查等功能放在一個Action中處理,避免action類數量太多。
在webwork中類似的功能。
1,方法一:使用ActionMapper (關于ActionMapper 還有其他功能可以參見 http://wiki.javascud.org/display/ww2cndoc/ActionMapper)
頁面中寫法:
<ww:form name="login" ">
<ww:textfield label="用戶名" name="model.username" />
<ww:textfield label="密 碼" name="model.password" />
<ww:submit name="method:Test" value="提交"/>
</ww:form>
<ww:textfield label="用戶名" name="model.username" />
<ww:textfield label="密 碼" name="model.password" />
<ww:submit name="method:Test" value="提交"/>
</ww:form>
注意紅色部分的寫法。這樣提交之后將會調用login這個action里面的 Test( )或者doTest( )方法,而不是默認的execute( )。
login這個action里面寫法:
public String doTest() {
System.out.println("ooooo================");
loginInfo.setErrorMessage("測試而已!");
return LOGIN_FAIL;
System.out.println("ooooo================");
loginInfo.setErrorMessage("測試而已!");
return LOGIN_FAIL;
}
2,方法二:直接在form 的action里面寫
頁面寫法:
<ww:form name="login" action="login!Test" method="post" validate="true">
<ww:textfield label="用戶名" name="model.username" />
<ww:textfield label="密 碼" name="model.password" />
<ww:submit value="提交"/>
</ww:form>
<ww:textfield label="用戶名" name="model.username" />
<ww:textfield label="密 碼" name="model.password" />
<ww:submit value="提交"/>
</ww:form>
login這個action里面寫法和方法一一樣。
進測試,兩種方法效果一樣。
希望對大家有點幫助。。。