JSF2.0 Передача объектов Value между управляемыми компонентами - PullRequest
3 голосов
/ 08 февраля 2011

Я уже написал небольшое приложение JSF2.0, использующее Weblogic 10.3.4, PrimeFaces и JQuery. Сейчас я смотрю на преобразование нашего основного веб-приложения в JSF2.0. В настоящее время используется Weblogic 8.1, Java 1.4 и JSP. Вопрос, который у меня есть на данный момент, заключается в том, как лучше всего передавать объекты из одного управляемого компонента в другой. Наше приложение состоит из множества экранов, но общий шаблон - это ссылка, вводимая на первом экране, а при отправке она ищется из базы данных и заполняется объект значения (стандартный Java-бин). Затем возвращается экран 2, который обычно представляет собой форму, состоящую из переменных объекта значения, готовых для редактирования.

В настоящее время все необходимые объекты сохраняются в качестве атрибута в объекте HTTPServletRequest на 1-м экране (в пределах пользовательского класса записанного контроллера) и затем извлекаются из него на следующем экране.

Это все еще способ сделать это или есть новый способ "JSF", который я пропустил. Я также думал о сохранении этих объектов-значений в пользовательском компоненте сеанса (который у нас будет в любом случае) и последующем извлечении из него при необходимости. Я предполагаю, что в этом случае лучше всего использовать карту, содержащую объекты-значения?

1 Ответ

3 голосов
/ 08 февраля 2011

Вы можете внедрить управляемый bean-компонент в другой управляемый bean-компонент с помощью @ManagedProperty.

Предполагая, что у вас есть bean-объект сессионной области, подобный этому

@ManagedBean
@SessionScoped
public class User {
    // ...
}

И bean-объект области видимости, подобныйэто

@ManagedBean
@RequestScoped
public class Profile {

    @ManagedProperty(value="#{user}") // #{user} is the managed bean name
    private User user;

    @PostConstruct
    public void init() {
        // User is available here for the case you'd like to work with it
        // directly after bean's construction.
    }

    public String save() {
        // User is available here as well, during action methods.
        userDAO.save(user);
    }

    // +getter +setter

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...