JSF 2.0: шаблон POST / Redirect / GET, когда метод действия возвращает значение NULL (оставайтесь на той же странице) - PullRequest
5 голосов
/ 09 августа 2011

Мне нужно избежать двойного POST при обновлении.Поэтому я использую шаблон POST / Redirect / GET (faces-redirect=true) и обработчик навигации (@BalusC), как в в этом сообщении .Как использовать этот шаблон в JSF 2.0, когда метод действия возвращает null (остаться на той же странице)?Это вообще возможно, или мне нужно использовать что-то другое, что POST / Redirect / GET?Мне нужно сохранить бин в области видимости, поэтому возвращение в методе действия того же самого вида (PRG работает) не является решением (приводит к потере view scope).

view test.xhtml:

<h:commandButton action="#{bean.send}"/>

боб:

@ManagedBean
@ViewScoped
class Bean {
   String send() {
       // do something...
       return null;
   }

   String send2() {
       // do something...
       return "test";  // view scope lost
   }
}

Ответы [ 2 ]

0 голосов
/ 20 июня 2012

некоторые фреймворки реализуют эту стратегию по умолчанию: например, Spring WebFlow. За каждым Submit (POST) следует GET с перенаправлением с параметром «execute», позволяющий Spring найти то же представление. например:

http://myhost:8080/booking-spring-faces/spring/mypage?execution=e1s2

Я бы хотел найти эту функцию в JSF-инструментах, таких как Omnifaces от BalusC!

0 голосов
/ 14 августа 2011

Marioosh.

Post / Redirect / Get вызывает два сценария жизненного цикла:

  • Перенаправление вызывает ответ Non-Faces (раздел 2.1 спецификации JSF-2).

  • Get вызывает запрос Non-face с ответом Faces (раздел 2.1.1).В этом сценарии создается новое представление.

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