title: f:setPropertyActionListener only works in view not in backing bean
body: <p>I try to get the information about the clicked button in a <code>&lt;p:datalist&gt;</code>, but it doesn't work.</p>
  
  <p>My View:</p>
  
  <pre><code>&lt;ui:composition xmlns="http://www.w3.org/1999/xhtml"        
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui" template="/WEB-INF/template.xhtml"&gt;
      &lt;ui:define name="head"&gt;
          &lt;title&gt;Hash Generator&lt;/title&gt;
      &lt;/ui:define&gt;
      &lt;ui:define name="content"&gt;
          &lt;h:form id="hashForm"&gt;
              &lt;p:dataList id="hashList" value="#{hashGeneratorBean.hashList}" var="entry" rowIndexVar="idx" itemType="none"&gt;
              &lt;p:column&gt;
                      &lt;h:outputText value="#{idx + 1}" /&gt;
                      &lt;h:inputText value="#{entry.clearText}" /&gt;
                      &lt;h:inputText value="#{entry.hashedText}" readonly="true" disabled="true" size="#{entry.hashedText.length() + 15}"/&gt;
                      &lt;p:commandButton id="addRow" actionListener="#{hashGeneratorBean.addRow}" icon="ui-icon-plus" title="Icon Only" update="hashList"&gt;
                          &lt;f:setPropertyActionListener value="#{entry}" target="#{hashGeneratorBean.selectedRow}" /&gt;
                      &lt;/p:commandButton&gt;
                      &lt;p:commandButton id="debugBtn" icon="ui-icon-disc" title="Icon Only" update=":hashForm:display" oncomplete="PF('dlg').show()"&gt;
                          &lt;f:setPropertyActionListener value="#{entry}" target="#{hashGeneratorBean.selectedRow}" /&gt;
                      &lt;/p:commandButton&gt;
              &lt;/p:column&gt;
              &lt;/p:dataList&gt;
              &lt;p:commandButton actionListener="#{hashGeneratorBean.hash}" value="Generate Hashes" update="hashList" /&gt;
              &lt;p:dialog modal="true" widgetVar="dlg"&gt;
                  &lt;h:panelGrid id="display" columns="2"&gt;
                      &lt;f:facet name="header"&gt;
                          &lt;h:outputText value="#{hashGeneratorBean.selectedRow.clearText}" /&gt;
                      &lt;/f:facet&gt;
                      &lt;h:outputText value="#{hashGeneratorBean.selectedRow.hashedText}" /&gt;
                  &lt;/h:panelGrid&gt;
              &lt;/p:dialog&gt;
          &lt;/h:form&gt;
      &lt;/ui:define&gt;
  &lt;/ui:composition&gt;
  </code></pre>
  
  <p>My Controller:</p>
  
  <pre><code>import java.util.ArrayList;
  import java.util.List;
  
  import javax.annotation.PostConstruct;
  import javax.faces.bean.ManagedBean;
  import javax.faces.bean.ViewScoped;
  import javax.faces.event.ActionEvent;
  
  import com.google.common.base.Charsets;
  import com.google.common.hash.Hashing;
  
  @ManagedBean
  @ViewScoped
  public class HashGeneratorBean {
  
      private List&lt;HashDTO&gt; hashList = new ArrayList&lt;HashDTO&gt;();
      private HashDTO selectedRow = new HashDTO();
  
      @PostConstruct
      public void init() {
          hashList.add(new HashDTO());
      }
  
      public void addRow(ActionEvent ae){
          hashList.add(new HashDTO());
      }
  
      public void hash(ActionEvent ae){
          for (HashDTO entry : hashList){
              entry.setHashedText(generateHash(entry.getClearText()));
          }
      }
  
      /**
       * Hashes the given password with SHA-256
       * @param password
       * @return passwordHash
       */
      public static String generateHash(String password) {
          return Hashing.sha256().hashString(password, Charsets.UTF_8).toString();
      }
  
      public List&lt;HashDTO&gt; getHashList() {
          return hashList;
      }
  
      public void setHashList(List&lt;HashDTO&gt; hashList) {
          this.hashList = hashList;
      }"
  
      public HashDTO getSelectedRow() {
          return selectedRow;
      }
  
      public void setSelectedRow(HashDTO selectedRow) {
          this.selectedRow = selectedRow;
      }
  
  }
  </code></pre>
  
  <p>If I click the "debugBtn"-button the dialog popups up and shows the correct information about the row. But If I click the "addRow"-button the data in the managed-bean isn't filled correct. The selectedRow-property allways stores the last added row from the hashList-property.</p>