Полосы: вызов метода ActionBean из другого ActionBean - PullRequest
1 голос
/ 11 ноября 2011

Я новичок в использовании инфраструктуры 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
    }

    ...
}

Как мне вызвать setUsername SessionActionBean из TestActionBean?А если SessionActionBean не был ограничен сессией?

Заранее спасибо

1 Ответ

3 голосов
/ 18 ноября 2011

Несколько вещей:

Если вы хотите сохранить данные в сеансе пользователя, @SessionScope не совсем то, что вам нужно.Лучше было бы расширить ActionBeanContext и написать несколько методов получения и установки, которые хранятся в контексте.См. 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-компонента не наследует контент контекста Stripes, но вы можете это сделать.

Если вы хотите, чтобы один @Resolution вызывал другой @Resolution, вы также можете сделать это: ForwardResolution(Class<? extends ActionBean> beanType).

...