1

Web アプリに検索ボックスを実装したいと思います。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 の投稿https://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>
4

0 に答える 0