浏览 3033 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-17
最后修改:2010-02-17
表单如下: <s:form action="firstAction"> <s:textfield name="user.name" label="name" /> <s:password name="user.password" label="password" /> <s:submit /> </s:form> UserAction.java代码如下: package st.action; import com.opensymphony.xwork2.Action; import st.bean.User; public class UserAction { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String firstAction() { user.setName(user.getName() + "_FIRST"); user.setPassword(user.getPassword() + "_FIRST"); System.out.println(user.getName() + "," + user.getPassword()); System.out.println(this + "," + user); return Action.SUCCESS; } public String secondAction() { user.setName(user.getName() + "_SECOND"); user.setPassword(user.getPassword() + "_SECOND"); System.out.println(user.getName() + "," + user.getPassword()); System.out.println(this + "," + user); return Action.SUCCESS; } } 起先我是使用redirectAction,配置如下: <action name="firstAction" class="st.action.UserAction" method="firstAction"> <result name="success" type="redirectAction"> <param name="actionName">secondAction</param> <param name="user.name">${user.name}</param> <param name="user.password">${user.password}</param> </result> </action> <action name="secondAction" class="st.action.UserAction" method="secondAction"> <result>result.jsp</result> </action> 通过打印出来的结果,可以发现虽然user的值被传递给了secondAction,但其实是重新实例化了一个user。如果要做到传递对象貌似没有什么办法,而且参数内容也被显示在了地址栏上。 使用redirect也是同样的问题。 如果使用chain又是另外一回事儿了: <action name="firstAction" class="st.action.UserAction" method="firstAction"> <result name="success" type="chain">secondAction</result> </action> <action name="secondAction" class="st.action.UserAction" method="secondAction"> <result>result.jsp</result> </action> 结果,前一次user处理后的值并没有传给secondAction,secondAction只是处理表单上的数据。 如果想要完成user对象在action中的传递,难道一定要借助session么? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |