我正在尝试在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进行编码。
感谢您的帮助。
答案 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&includeViewParams=true">
<f:param name="mutation" value="whatever"/>
</h:commandButton>
</h:form>
</h:body>
</html>
本文中有关JSF2中PRG模式的更多信息:http://www.warski.org/blog/?p=185