popup = "true" не работает в Spring webflow 2.3.0 для среды JSF 2.0 - PullRequest
1 голос
/ 22 августа 2011

Моя проблема в том, что я не могу показать всплывающее окно с помощью весеннего веб-потока. У меня есть экран A, где на основе определенного флага я хочу показать всплывающее окно B при нажатии кнопки команды (простые символы или Spring лица).

Я пробовал следующие вещи

Мой веб-поток выглядит как

<view-state id="accSummary">
    <transition on="searchRequest" to="startRequest" />
    <transition on="addRequest" to="PopUpViewState" />
</view-state>
<view-state id="PopUpViewState" popup="true"
    redirect="true">
</view-state>

Xhtml выглядит как

<p:commandButton value="#{label.addRequest}" action="addRequest" />

Кажется, popup="true" не работает.

Пожалуйста, помогите.

SWF 2.3.0; Primefaces 2.2.1; JSF 2; Spring Security 3; Весна 3.1.0M1; Ehcache; Apache Tomcat 6.0; СТС 2.5.1

1 Ответ

1 голос
/ 15 ноября 2011

Кажется, что popup="true" не поддерживается (пока?) В SWF 2.3.0.В соответствии с документацией SWF http://static.springsource.org/spring-webflow/docs/2.3.x/reference/html/ch13.html:

также обратите внимание, что библиотека компонентов Spring Faces, которая обеспечивает Ajax и возможности проверки на стороне клиента, предназначена только для сред JSF 1.2 и не будет обновлена ​​до JSF 2.0.Приложениям рекомендуется использовать сторонние библиотеки компонентов JSF 2, такие как PrimeFaces и RichFaces.Например, образец swf-booking-face в дистрибутиве Spring Web Flow построен с использованием компонентов JSF 2 и PrimeFaces.

Поскольку всплывающие окна SWF основаны на Ajax, я думаю, что это не работает для JSF2.

Альтернативой может быть использование rich:popupPanel modal="true" или что-то похожее из PrimeFaces, но на данный момент я не вижу, как сделать плавный / быстрый переход popup="true" из JSF1.2 во что-то в JSF2.

РЕДАКТИРОВАТЬ:

Чтобы включить функции Ajax рабочих поверхностей пружин (включая popup="true") в JSF2, выполните следующие изменения в конфигурации адаптера обработчика потока:

<bean class="org.springframework.js.ajax.SpringJavascriptAjaxHandler"
      id="springAjaxHandler">
</bean>
<bean class="org.springframework.faces.webflow.JsfAjaxHandler"
      id="jsfAjaxHandler">
    <constructor-arg ref="springAjaxHandler"/>
</bean>
<bean class="org.springframework.faces.webflow.JsfFlowHandlerAdapter">
    <property name="flowExecutor" ref="flowExecutor"/>
    <property name="ajaxHandler" ref="jsfAjaxHandler"/>
</bean>

После этого у меня работают всплывающие окна SWF и другие компоненты (кнопки команд sf, ссылки и т. Д.).Это не «официальное» решение или предложение по настройке JSF2, поэтому используйте его на свой страх и риск.

...