Разница для меня (из того, что спросил Джейсон) заключается в том, что я использую JSF 2.0. Я читал, что JSF 2.0 добавил возможность использовать get, но я не уверен, какой правильный способ использовать это.
Обратите внимание, что это не то же самое, что поддерживать состояние Ajax. Обычно это происходит по идентификаторам фрагментов (часть, начинающаяся с #
в URL, также известная как hashbang). JSF не предлагает встроенные компоненты / функциональность для этого. Насколько я также не видел библиотеку компонентов, которая делает это. Однако этот ответ может оказаться полезным для начала работы с доморощенным обработчиком фрагментов хеша в JSF.
Что касается использования запросов GET, просто используйте <h:link>
, <h:outputLink>
или даже <a>
для создания ссылок GET. Вы можете предоставить параметры запроса в h:
компонентах <f:param>
. Э.Г.
<h:link value="Edit product" outcome="product/edit">
<f:param name="id" value="#{product.id}" />
</h:link>
На странице product/edit.xhtml
вы можете определить параметры для установки и действия, выполняемые по запросу GET
<f:metadata>
<f:viewParam name="id" value="#{productEditor.id}" />
<f:event type="preRenderView" listener="#{productEditor.init}" />
</f:metadata>
В объекте запроса или представлении, связанном с product/edit.xhtml
page - в этом примере #{productEditor}
- вы просто определяете свойства и метод слушателя. Метод слушателя будет выполнен после того, как все свойства будут собраны, преобразованы, проверены и обновлены в модели.
private Long id;
private Product product;
public void init() {
product = productService.find(id);
}