在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>
 
注意红色部分的写法。这样提交之后将会调用login这个action里面的 Test( )或者doTest( )方法,而不是默认的execute( )。
login这个action里面写法:
 public String doTest() {
        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>
 
login这个action里面写法和方法一一样。
 
 
进测试,两种方法效果一样。
 
希望对大家有点帮助。。。
 

Feedback

# re: webwork中类似struts的DispatchAction的使用方法。   回复  更多评论   

2007-07-21 21:02 by Caixiaopig
还有一种就是在xwork.xml里边声明action的时候可以直接把相同class的action按照方法来声明成很多个alias不同的action。

# re: webwork中类似struts的DispatchAction的使用方法。   回复  更多评论   

2007-08-06 10:26 by Hally
嗯。谢谢楼上的提醒。

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 43, comments - 200, trackbacks - 0, articles - 2

Copyright © Hally