我是使用Stripes框架的新手,我需要一些帮助。
我想从另一个ActionBean调用ActionBean的方法。
例如,我有两个ActionBean:
@SessionScope
public class SessionActionBean extends AbstractActionBean{
private String property;
public void setUsername(String username) {
this.username = username;
}
}
并且
public class TestActionBean extends AbstractActionBean {
...
public Resolution submitTest() {
//TODO Call setUsername is SessionActionBean
}
...
}
如何从TestActionBean调用SessionActionBean的setUsername?如果SessionActionBean不是会话范围的?
提前致谢
答案 0 :(得分:3)
一些事情:
如果您想在用户的会话中存储数据,@SessionScope
并不是您想要的。你最好扩展ActionBeanContext并编写一些存储在上下文中的getter和setter。有关详细信息,请参阅http://www.stripesframework.org/display/stripes/State+Management。
如果你真的想要使用@SessionScope,请务必阅读javadoc中的警告,并确保它真的是你需要的。
http://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/action/SessionScope.html
由于会话范围ActionBeans通常不受鼓励 作者,很少有津贴将在Stripes中容纳 会话范围bean。
最后,实际调用从一个操作bean到另一个操作bean的方法就像实例化bean并调用方法一样简单。它有点奇怪和倒退,实例化的bean不会继承Stripes上下文的东西,但是你可以做到。
如果你想让一个@Resolution调用另一个@Resolution,你也可以这样做:ForwardResolution(Class<? extends ActionBean> beanType)
。