Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy JSF2(PrimeFaces3) Ajax Property Listener is not triggering?
    primarykey
    data
    text
    <p>I have a datatable with each row having Edit and Delete buttons. It is almost similar to <a href="http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionByColumn.jsf" rel="nofollow">http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionByColumn.jsf</a> datatable.</p> <p>When I click on Edit button, if I display the selected row values using <code>&lt;h:outputText&gt;</code> the values are being displayed properly. But If I want to display it in a input text field using <code>&lt;h:inputText value="#{userCRUDMB.selectedUser.userName}"/&gt;</code> it is throwing error saying <code>selectedUser is resolved as null</code>.</p> <p>If I only use <code>&lt;h:outputText ...&gt;</code> then <code>userCRUDMB.selectedUser()</code> method is getting called properly. But If I use <code>&lt;h:inputText ...&gt;</code> in the Dialog, the setter method is not at all getting called.</p> <p>I am using Mojarra 2.1.6, PrimeFaces 3.0, Apache Tomcat7.0.32.</p> <p>Any idea why it is happening?</p> <p>Code: Code is same as <a href="http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionByColumn.jsf" rel="nofollow">http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionByColumn.jsf</a>, except in the dialogue box instead of displaying the text using I am trying to display in input textbox using .</p> <pre><code>public class User { private Integer userId; private String userName; private String password; private String firstname; private String lastname; private String email; private Date dob; private String gender; //setters/getters } package com.sivalabs.primefacesdemo.managedbeans; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import com.sivalabs.primefacesdemo.model.User; import com.sivalabs.primefacesdemo.model.UserDataModel; import com.sivalabs.primefacesdemo.service.SpringContainer; import com.sivalabs.primefacesdemo.service.UserService; @ManagedBean(name="UserCRUDMB") @RequestScoped public class UserCRUDMB { private UserDataModel userDataModel; private User selectedUser; private User[] selectedUsers; public UserCRUDMB() { List&lt;User&gt; users = new ArrayList&lt;User&gt;(); for (int i = 0; i &lt; 15; i++) { User user = new User(); user.setUserId(i); user.setUserName("userName"+i); users.add(user); } this.userDataModel = new UserDataModel(users); } public UserDataModel getUserDataModel() { return userDataModel; } public void setUserDataModel(UserDataModel userDataModel) { this.userDataModel = userDataModel; } public User[] getSelectedUsers() { return selectedUsers; } public void setSelectedUsers(User[] selectedUsers) { this.selectedUsers = selectedUsers; } public User getSelectedUser() { System.out.println("get--&gt;"+selectedUser); return selectedUser; } public void setSelectedUser(User selectedUser) { System.out.println("set---&gt;"+selectedUser); this.selectedUser = selectedUser; } } &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui"&gt; &lt;h:head&gt; &lt;/h:head&gt; &lt;body&gt; &lt;h:form id="form"&gt; &lt;h:outputText value="PrimeFaces Demo - ShowUsers" /&gt; &lt;p:dataTable value="#{UserCRUDMB.userDataModel}" var="userObj" selection="#{UserCRUDMB.selectedUsers}" widgetVar="usersTbl"&gt; &lt;f:facet name="header"&gt;UserManagement&lt;/f:facet&gt; &lt;p:column selectionMode="multiple"&gt;&lt;/p:column&gt; &lt;p:column headerText="UserId"&gt;#{userObj.userId}&lt;/p:column&gt; &lt;p:column headerText="UserName"&gt;#{userObj.userName}&lt;/p:column&gt; &lt;p:column&gt; &lt;p:commandButton value="Edit" oncomplete="userEditDlg.show()" update="form:userEditTbl"&gt; &lt;f:setPropertyActionListener target="#{UserCRUDMB.selectedUser}" value="#{userObj}"&gt;&lt;/f:setPropertyActionListener&gt; &lt;/p:commandButton&gt; &lt;/p:column&gt; &lt;p:column&gt; &lt;p:commandButton value="Delete" action="#{UserCRUDMB.deleteUser}" update="usersTbl" ajax="true"&gt; &lt;f:setPropertyActionListener target="#{UserCRUDMB.selectedUser}" value="#{userObj}"&gt;&lt;/f:setPropertyActionListener&gt; &lt;/p:commandButton&gt; &lt;/p:column&gt; &lt;f:facet name="footer"&gt; &lt;p:commandButton value="Delete Selected" action="#{UserCRUDMB.deleteUsers}" update="usersTbl" ajax="true"&gt; &lt;/p:commandButton&gt; &lt;/f:facet&gt; &lt;/p:dataTable&gt; &lt;p:dialog widgetVar="userEditDlg" header="User Edit Form" hideEffect="explode" minHeight="200" minWidth="300"&gt; &lt;h:panelGrid columns="2" id="userEditTbl" &gt; &lt;h:outputLabel value="UserId" /&gt; &lt;h:outputText value="#{UserCRUDMB.selectedUser.userId}"/&gt; &lt;h:outputLabel value="UserName" /&gt; &lt;h:inutText value="#{UserCRUDMB.selectedUser.userName}"/&gt; &lt;/h:panelGrid&gt; &lt;/p:dialog&gt; &lt;/h:form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>Thanks, Siva</p>
    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. 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