title: PrimeFaces commandButton ajax does not work
body: <p>I have simple JSF page and simple backing bean. I have p:commandButton on the page and p:datatable. With commandButton I need to update dataTable with ajax, but it does not happens. What could be the reason?</p>
  
  <p>Here is the page:</p>
  
  <pre><code>&lt;ui:define name="content"&gt;
          &lt;h2&gt;#{menu['management.roles.perms']}&lt;/h2&gt;
  
          &lt;h:form id="form"&gt;
              &lt;p:fieldset style="border: 0px" toggleable="false" collapsed="false"&gt;
                  &lt;p:tabView&gt;
                      &lt;p:tab title="#{messages['roles']}"&gt;
                           &lt;p:dataTable id="dataTable" value="#{rolesBean.roles}" var="role"
                                        editable="true" rows="10" rowKey="#{role.id}"&gt;
  
                               &lt;p:ajax event="rowEdit" listener="#{rolesBean.onEdit}"/&gt;
                               &lt;f:facet name="footer"&gt;
                                   &lt;p:commandButton value="#{misc['add.role']}"
                                                    actionListener="#{rolesBean.addRole}" update="dataTable"/&gt;
                               &lt;/f:facet&gt;
                               &lt;p:column headerText="#{misc['name.database']}"&gt;
                                   &lt;p:cellEditor&gt;
                                       &lt;f:facet name="output"&gt;
                                           &lt;h:outputText value="#{role.name}"/&gt;
                                       &lt;/f:facet&gt;
                                       &lt;f:facet name="input"&gt;
                                           &lt;h:inputText value="#{role.name}"/&gt;
                                       &lt;/f:facet&gt;
                                   &lt;/p:cellEditor&gt;
                               &lt;/p:column&gt;
  
                               &lt;p:column headerText="#{misc['date']}"&gt;
                                   &lt;f:facet name="output"&gt;
                                       &lt;h:outputText value="#{role.creationDate}"&gt;
                                           &lt;f:convertDateTime pattern="dd.MM.yyyy" /&gt;
                                       &lt;/h:outputText&gt;
                                   &lt;/f:facet&gt;
                               &lt;/p:column&gt;
  
                               &lt;p:column headerText="#{misc['description']}"&gt;
                                   &lt;p:cellEditor&gt;
                                       &lt;f:facet name="output"&gt;
                                           &lt;h:outputText value="#{role.description}"/&gt;
                                       &lt;/f:facet&gt;
                                       &lt;f:facet name="input"&gt;
                                           &lt;h:inputText value="#{role.description}"/&gt;
                                       &lt;/f:facet&gt;
                                   &lt;/p:cellEditor&gt;
                               &lt;/p:column&gt;
  
                               &lt;p:column headerText="#{messages['edit']}"&gt;
                                   &lt;p:rowEditor /&gt;
                               &lt;/p:column&gt;
                           &lt;/p:dataTable&gt;
                      &lt;/p:tab&gt;
  
                      &lt;p:tab title="#{messages['perms']}"&gt;
  
                      &lt;/p:tab&gt;
  
                      &lt;p:tab title="#{clients['history']}"&gt;
                      &lt;/p:tab&gt;
                  &lt;/p:tabView&gt;
              &lt;/p:fieldset&gt;
          &lt;/h:form&gt;
      &lt;/ui:define&gt;
  </code></pre>
  
  <p>And here is the code of backingBean:</p>
  
  <pre><code>@ViewScoped
  @ManagedBean(name = "rolesBean")
  public class RolesViewBean extends BasicViewBean&lt;Role&gt; {
  
      private static final long serialVersionUID = 27377603187254821L;
      @Inject
      RoleDao dao;
      private List&lt;Role&gt; roles;
  
      @Override
      protected BasicDao&lt;Role&gt; getDAO() {
          return dao;
      }
  
      public void onEdit(RowEditEvent event){
          this.entity = (Role) event.getObject();
          dao.update(this.entity);
      }
  
      public void addRole(){
          roles.add(new Role());
      }
  
      public List&lt;Role&gt; getRoles() {
          roles = dao.getRoleList();
          return roles;
      }
  
      public void setRoles(List&lt;Role&gt; roles) {
          this.roles = roles;
      }
  } 
  </code></pre>