Должен ли я использовать элемент f:event или action в PrettyFaces?


person LuckyLuke    schedule 26.11.2011    source источник


Ответы (1)


Теги <f:event> и <action> кажутся очень похожими, но имеют несколько существенных отличий, которые могут повлиять на ваше решение:

  1. <action> позволяет выполнять навигацию, возвращая строку навигации.
  2. <f:event> — это родной JSF, который позволяет вам оставаться переносимым, если в будущем вы захотите переключиться на инструменты для перезаписи URL-адресов.
  3. <action> позволяет вам выбрать, на какой фазе вызывать действие с помощью атрибута <action phaseId="..." />. <f:event> обычно всегда вызывается одновременно во время RENDER_RESPONSE, после того как вам действительно нужно, чтобы он вызывался, если вы используете эту информацию в методе действия JSF или на этапе INVOKE_APPLICATION.

По умолчанию <action> вызывается после фазы RESTORE_VIEW, но, как я уже говорил, вы можете управлять этим самостоятельно.

Обычно я предпочитаю использовать <action>, потому что он работает без каких-либо элементов <f:viewParam>, а также позволяет мне перемещаться до того, как произойдет какая-либо обработка жизненного цикла (сохраняя ситуацию немного более безопасной).

person Lincoln    schedule 26.11.2011
comment
Как бы вы тогда привязали параметры пути? Установка их прямо на боб? Или вы можете передать их в качестве аргумента методу действия? - person LuckyLuke; 26.11.2011
comment
Я бы привязал параметры пути, используя инъекцию PrettyFaces, как вы предложили. - person Lincoln; 26.11.2011