Как использовать @ConversationScoped для обработки более чем одного базового компонента? - PullRequest
0 голосов
/ 26 апреля 2018

Java 1.7 / JSF 2 / JPA 2 / Hibernate 4

Я прочитал несколько уроков и постов о @ConversationScoped, и во всех них одно и то же сообщение: используйте его, когда у вас много представлений для одного бэк-компонента.

Однако у меня есть сценарий бизнес-процесса, в котором я должен:

  1. Показывать количество элементов на странице листинга (поддерживается компонентом поддержки листинга);
  2. Показать страницу редактирования (поддерживается другим компонентом поддержки) для редактирования определенного элемента в списке;
  3. После завершения редактирования вернитесь на страницу со списком, которая должна отображать тот же предыдущий контекст.

Страница редактирования сложна и имеет много зависимостей, которые не имеют смысла находиться в компоненте поддержки списка, поэтому я предпочитаю, чтобы два компонента поддержки работали над двумя разными страницами, но в одном бизнес-контексте.

Можно ли этого достичь? Какие шаги?

1 Ответ

0 голосов
/ 07 мая 2018

После некоторого тестирования я смог заставить его работать. Все, что мне нужно было сделать, это добавить параметр кнопки cdi на кнопку редактирования. Чтобы это работало, моя кнопка редактирования должна была выглядеть примерно так:

<p:commandButton title="Edit"
                 action="#{myMB.nextView}"
                 ajax="false">
    <f:param name="id" value="#{bean.id}"/>
    <f:param name="cid" value="#{myMB.conversation.id}"/>
</p:commandButton>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...