title: Setting f:setPropertyActionListener value with a f:param value
body: <p>I'm trying to use the <code>setPropertyActionListener</code> tag to set a value in my backing bean. However, it doesn't work as I expected.</p>
  
  <p>Context: userService is an instance of my backing bean, which contains an int member, reqID. This, in turn, is the key to a map of objects that belong to a class called User. I'm trying to create a page that will list all instances of User, and provide a button to visit a separate view that shows that particular User's information. To do this, I'm attempting to set <code>userService.reqID</code> to the id of the chosen User so it can generate a reference to that user for the next view (which is done in the call <code>userService.toUserInfo</code>).</p>
  
  <p>If I use the xhtml snippet below: </p>
  
  <pre><code>&lt;ui:define name="content"&gt;
          &lt;h:form&gt;
              &lt;h:panelGrid&gt;
                      &lt;ui:repeat value="#{userService.UserList.getUserList()}" var="user"&gt;
                          &lt;li&gt;
                              &lt;h:outputText value="#{user.name}" /&gt;
                              &lt;h:commandButton value="View details of #{user.name}" action="#{userService.toUserInfo}"&gt;
                              &lt;f:param name="id" value="#{user.id}" /&gt;
                              &lt;f:setPropertyActionListener target="#{userService.reqID}" value="#{id}"/&gt;
                              &lt;/h:commandButton&gt;
  
                          &lt;/li&gt;
                      &lt;/ui:repeat&gt; 
              &lt;/h:panelGrid&gt;
          &lt;/h:form&gt;
      &lt;/ui:define&gt;
  </code></pre>
  
  <p>The tag does not appear to evaluate <code>id</code> correctly and I get a Null Pointer Exception.</p>
  
  <p>Earlier, I tried changing my setPropertyActionListenerTag so it read out as:</p>
  
  <pre><code>&lt;f:setPropertyActionListener target="#{userService.reqID}" value="id"/&gt;
  </code></pre>
  
  <p>which gave me an error, because the tag was sending the string <code>"id"</code> as opposed to the int value of the parameter.</p>
  
  <p>Is there some way to force f:setPropertyActionListener to evaluate the expression under <code>value</code>? Or is there another tag that will allow me to do this?</p>
  
  <p>Also, is ui:param used appropriately here?</p>