【问题标题】:Stripes: Call method of an ActionBean from another ActionBeanStripes:从另一个 ActionBean 调用一个 ActionBean 的方法
【发布时间】:2011-11-11 15:15:30
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: java java-ee-6 stripes


    【解决方案1】:

    一些事情:

    如果您想在用户会话中存储数据,@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)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    相关资源
    最近更新 更多