Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>For simple page-to-page navigation (without submitting anything) you should be using <code>&lt;h:outputLink&gt;</code> instead of <code>&lt;h:commandLink&gt;</code>. </p> <p>So, <strong>instead</strong> of</p> <pre class="lang-html prettyprint-override"><code>&lt;h:form&gt; &lt;h:commandLink value="Page 1" action="page1" /&gt; &lt;h:commandLink value="Page 2" action="page2" /&gt; &lt;h:commandLink value="Page 3" action="page3" /&gt; &lt;/h:form&gt; </code></pre> <p>and those navigation cases</p> <pre class="lang-xml prettyprint-override"><code>&lt;navigation-rule&gt; &lt;navigation-case&gt; &lt;from-outcome&gt;page1&lt;/from-outcome&gt; &lt;to-view-id&gt;page1.jsf&lt;/to-view-id&gt; &lt;/navigation-case&gt; &lt;navigation-case&gt; &lt;from-outcome&gt;page2&lt;/from-outcome&gt; &lt;to-view-id&gt;page2.jsf&lt;/to-view-id&gt; &lt;/navigation-case&gt; &lt;navigation-case&gt; &lt;from-outcome&gt;page3&lt;/from-outcome&gt; &lt;to-view-id&gt;page3.jsf&lt;/to-view-id&gt; &lt;/navigation-case&gt; &lt;/navigation-rule&gt; </code></pre> <p>you <em>should</em> use</p> <pre class="lang-html prettyprint-override"><code>&lt;h:outputLink value="page1.jsf"&gt;Page 1&lt;/h:outputLink&gt; &lt;h:outputLink value="page2.jsf"&gt;Page 2&lt;/h:outputLink&gt; &lt;h:outputLink value="page3.jsf"&gt;Page 3&lt;/h:outputLink&gt; </code></pre> <hr> <p>For real form submits you should rewrite the action methods to return <code>void</code> or <code>null</code> instead of an outcome. So, <strong>instead</strong> of</p> <pre class="lang-html prettyprint-override"><code>&lt;h:form&gt; &lt;h:inputText value="#{bean.query}" /&gt; &lt;h:commandButton value="Search" action="#{bean.search}" /&gt; &lt;/h:form&gt; </code></pre> <p>with</p> <pre class="lang-java prettyprint-override"><code>public String search() { results = searchService.find(query); return "results"; } </code></pre> <p>on one page and</p> <pre class="lang-html prettyprint-override"><code>&lt;h:dataTable value="#{bean.results}" var="result"&gt; ... &lt;/h:dataTable&gt; </code></pre> <p>on other page and this navigation case</p> <pre class="lang-xml prettyprint-override"><code>&lt;navigation-rule&gt; &lt;from-view-id&gt;search.jsf&lt;/from-view-id&gt; &lt;navigation-case&gt; &lt;from-outcome&gt;results&lt;/from-outcome&gt; &lt;to-view-id&gt;results.jsf&lt;/to-view-id&gt; &lt;/navigation-case&gt; &lt;/navigation-rule&gt; </code></pre> <p>you <em>should</em> use</p> <pre class="lang-html prettyprint-override"><code>&lt;h:form rendered="#{empty bean.results}"&gt; &lt;h:inputText value="#{bean.query}" /&gt; &lt;h:commandButton value="Search" action="#{bean.search}" /&gt; &lt;/h:form&gt; &lt;h:dataTable value="#{bean.results}" var="result" rendered="#{not empty bean.results}"&gt; ... &lt;/h:dataTable&gt; </code></pre> <p>with</p> <pre class="lang-java prettyprint-override"><code>public void search() { results = searchService.find(query); } </code></pre> <p>You can if necessary include page fragments by <code>&lt;jsp:include&gt;</code>.</p> <h3>See also:</h3> <ul> <li><a href="https://stackoverflow.com/questions/4317684/when-should-i-use-houtputlink-instead-of-hcommandlink">When should I use h:outputLink instead of h:commandLink?</a></li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload