在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里面写法和方法一一样。
进测试,两种方法效果一样。
希望对大家有点帮助。。。