如何以JSF格式将inputText值作为查询字符串传递

时间:2012-12-31 03:39:26

标签: jsf jsf-2

我想在我的网络应用中实现一个搜索框。 JSF <h:form>应该将我重定向到products.xhtml?search = somestring。它应该与下面的HTML一样工作:

<form action="products.xhtml" method="GET">
  <input type="text" name="search" />
  <input type="submit" value="Submit"  />
</form>

我遇到的所有类似问题的解决方案都是重定向到没有查询字符串的另一个页面

<h:form>
  <h:inputText value="#{product.searchString}"/>
  <h:commandButton value="Submit" action="products?faces-redirect=true&amp;includeViewParams=true"/>
</h:form>

<h:form>
    <h:inputText valueChangeListener="#{product.searchStringChanged}" />
    <h:link value="Submit"  outcome="products">
        <f:param name="search" value="#{product.searchString}" />
    </h:link>
</h:form>

OR构建查询字符串,但重定向到同一页面。 不使用纯HTML的原因是为了保持JSF会话管理的好处。

修改

BalusC's posthttps://blogs.oracle.com/enterprisetechtips/entry/post_redirect_get_and_jsf的帮助下,我提出了以下解决方案:

<f:metadata>
  <f:viewParam name="search" value="#{product.search}" />       
</f:metadata> 

<h:form>
  <h:inputText value="${product.search}"/>
  <h:commandLink action="products?faces-redirect=true&amp;includeViewParams=true" value="Search"/>
</h:form>

0 个答案:

没有答案