title: How do you use JSF implicit redirection with POST parameters
body: <p>In my JSF application I have two pages, <code>list.jsf</code> and <code>details.jsf</code>, and each page has its own controller with view scope. In <code>list.jsf</code> I have a <code>&lt;h:commandLink&gt;</code> that calls an action and pass a parameter:</p>
  
  <pre><code>&lt;h:commandLink value="details" action="#{listBean.goToDetails}" &gt;
     &lt;f:param  name="id" value="#{listBean.object.pk}"/&gt;&lt;/h:commandLink&gt;
  </code></pre>
  
  <p>This is the bean method:</p>
  
  <pre><code>@ManagedBean
  @ViewScoped
  public class ListBean {
      public String goToDetails() {
          // some code
          return "details?faces-redirect=true";
      }
  }
  </code></pre>
  
  <p>I read the parameter in the second bean like this:</p>
  
  <pre><code>Map&lt;String, String&gt; params = FacesContext.getCurrentInstance()
                  .getExternalContext().getRequestParameterMap();
          this.setIdParam(params.get("id"));
  </code></pre>
  
  <p>When I run this code, the parameter is not passed to the second bean instance.
  However when I change navigation to <code>forward</code> (without <code>faces-redirect=true</code>), the parameter is passed and I can see the details in <code>details.jsf</code> but the URL doesn't match with the current page.</p>
  
  <p>So what I want to do is to use a "jsf implicit redirection" (not a forward) with POST parameters (f:param).</p>