2012-06-15 2 views
0

В JSF 2 вы можете передавать идентификаторы, строки, которые могут быть отправлены в качестве параметров запроса либо f:viewParam, либо @ManagedProperty (т. Е. Обсуждение here).Передача объектов между представлениями

Однако, я хотел бы обойти объекты между видами, от view1 до view2. Мои бобы - @ViewScoped. Я попытался следующие:

<f:setPropertyActionListener value="#{view1Bean.myObject}" target="#{view2Bean.myObject}" /> 

Это создает view2Bean на view1, которая больше не существует при просмотре view2. Итак, view2Bean.myObject - null, потому что свойство никогда не было установлено в конкретном экземпляре view2bean.

Я рассмотрел использование области флэш-памяти, которая, по-видимому, является инструментом для этого. Тем не менее, я читал BalusC где-то, говоря, что он сломан в Мохарре, который я использую.

Каков наилучший способ обхода объектов между видами?

+0

Обычно область сеанса существует для объектов, которые необходимо выжить, если вы измените их между видами. –

ответ

1

Однако, я хотел бы обойти объекты между видами, от view1 до view2.

Вы могли бы просто передать уникальный идентификатор объекта в качестве параметра к следующему представлению и прикрепить Converter к <f:viewParam>.

<f:viewParam name="id" value="#{bean.entity}" converter="entityConverter" /> 

Я рассматривал объем Flash, который, кажется, именно этот инструмент для этого. Тем не менее, я читал BalusC где-то, говоря, что он сломан в Мохарре, который я использую.

Это будет в текущей версии Mojarra только не всякий раз, когда взгляды на другой путь (папку) из-за способ, как куки работ флэш. Если они находятся в то же путь (папка), тогда он должен работать нормально.

Смежные вопросы