JSF 2.0 передает данные между компонентами (или страницами?) - PullRequest
5 голосов
/ 19 февраля 2011

Я работаю с JSF 2.0

У меня есть форма в разделе администратора, где я собираюсь выбрать некоторых пользователей в списке.

Форма (selectusers.xhtml)добавление этих пользователей в список в bean-компоненте (SelectUsers.java).

После того как я выберу некоторых пользователей, я передам список пользователей из SelectUsers.java другому bean-компоненту (AddAddressBean.java) и продолжайте добавлять информацию в другой форме (addadress.xhtml), которая устанавливает другие свойства, связанные с AddAddressBean для каждого пользователя.

Я не знаю, как это реализовать.Мне бы хотелось, чтобы AddAddressBean.java был независимым (чтобы я мог использовать его вместе с другими компонентами), поэтому я предпочитаю, чтобы AddAddressBean.java не знал о других компонентах.

Не могли бы вы мне помочь?=)

BR Carl

Ответы [ 2 ]

6 голосов
/ 22 марта 2011

Несколько быстрых вещей приходят на ум:

  1. Возможно, вы могли бы иметь один компонент только для этих связанных страниц, используя @SessionScoped или более короткий CDI @ConversationScope, или, и это лучший из трех, DeltaSpike @ViewAccessScoped
  2. Нажав кнопку на странице 1, где вы попадете на страницу 2, в 1-м компоненте вы можете использовать объект Flash для хранения объектов, которые хотите передать, а в методе @PostConstruct второго компонента вы может получить все объекты из объекта Flash
  3. Если вы не возражаете против использования области действия сеанса, у вас все еще может быть 2 компонента, и один компонент может ссылаться на другой компонент, используя jsf way (@ ManagedProperty) или способ внедрения Java EE (@Inject). ) или пружинным способом, если вы используете пружину (@Autowired)
0 голосов
/ 11 декабря 2017

Это как я реализовал (использовал ConversationScoped, как сказал @bertie).

боб 1:

@Named("conversationBean1")
@ConversationScoped
public class ConversationBean1 implements Serializable {
          //---start conversation----

  }

боб 2:

@Named("conversationBean2")
@ConversationScoped
public class ConversationBean2 implements Serializable 
  {
      @Inject
      private ConversationBean1 conversationBean1;
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...