2011-11-11 52 views
1

我是使用Stripes框架的新手,我需要一些帮助。Stripes:从另一个ActionBean调用ActionBean的方法

我想从另一个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 
    } 

    ... 
} 

如何调用SessionActionBean从TestActionBean的通过setUsername?如果SessionActionBean不是会话作用域?

在此先感谢

回答

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一般不被 作者鼓励,很少津贴将被条纹,以适应 会话范围豆。

最后,实际从一个动作bean调用方法到另一个动作bean就像实例化bean并调用方法一样简单。这有点古怪,而且实例化的bean不会继承Stripes上下文,但是你可以做到。

如果您希望有一个@Resolution调用另一个@Resolution,您也可以这样做:ForwardResolution(Class<? extends ActionBean> beanType)

+0

带状态管理的更新链接:https://stripesframework.atlassian.net/wiki/plugins/servlet/mobile?contentId=492007#content/view/492007 – RobertG

相关问题