jsf2: form: GET метод - PullRequest
       8

jsf2: form: GET метод

2 голосов
/ 14 июля 2011

Я пытаюсь построить эквивалент этого кода в JSF2

                <form action="/search.xhtml" method="get">
                    <div class="search">
                        <input type="hidden" name="mutation" value="#{facesContext.viewRoot.locale}" />
                        <input name="searchString" class="text" />
                        <input type="submit" class="searchSubmit" value="#{msg.searchIt}" />
                    </div>
                </form>

Смысл этой конструкции - перенаправить пользователя на страницу search.html, где отображаются результаты поиска. Страница использует параметры URL для декодирования searchString и языковой мутации. И поскольку он использует get, он также является закладкой.

В JSF2 я пытался использовать кнопку h: с параметром для мутации, но я понятия не имею, как заставить jsf кодировать h: inputText searchString.

Спасибо за вашу помощь.

1 Ответ

4 голосов
/ 21 июля 2011

Насколько я знаю, в JSF нет возможности использовать method = "GET". Это не то, что вам нужно, но, возможно, использование шаблона post-redirect-get может решить вашу проблему:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
    <f:metadata>
       <f:viewParam name="searchString" value="#{requestScopedBean.searchString}"/>
       <f:viewParam name="mutation" value="#{requestScopedBean.mutation}"/>
    </f:metadata>
    <h:body>
        <h:form>
            <h:inputText value="#{requestScopedBean.searchString}"/>
            <h:commandButton value="submit" action="/tests/search?faces-redirect=true&amp;includeViewParams=true">
                <f:param name="mutation" value="whatever"/>
            </h:commandButton>
        </h:form>
    </h:body>

</html>

Подробнее о шаблоне PRG в JSF2 в этой статье: http://www.warski.org/blog/?p=185

...