Stripes:从另一个ActionBean调用ActionBean的方法

时间:2011-11-11 15:15:30

标签: java java-ee-6 stripes

我是使用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不是会话范围的?

提前致谢

1 个答案:

答案 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)