jsf2:form:GET方法

时间:2011-07-14 16:57:52

标签: forms jsf-2 get

我正在尝试在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我尝试使用带有param的h:按钮进行变异,但是我没有线索,如何强制jsf对h:inputText searchString进行编码。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

据我所知,在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>

本文中有关JSF2中PRG模式的更多信息:http://www.warski.org/blog/?p=185