I have a view.xhtml
<p:commandButton value="Add" type="action" id="etiquetteButton"/>
<p:overlayPanel for="etiquetteButton">
<p:selectOneMenu value="#{displayClients.etiquetteName}">
<f:selectItem itemLabel="Choose label " itemValue="#{null}"/>
<f:selectItems value="#{displayClients.etiquetteList}" var="etiquette" itemValue="#{etiquette.name}" itemLabel="#{etiquette.name}"/>
<p:autoUpdate />
</p:selectOneMenu>
<p:commandButton value="Save" update="@form" actionListener="#{displayClients.updateClient}"/>
</p:overlayPanel>
</p:column>
and my bean displayClients
@Named
@RequestScoped
public class DisplayClients implements Serializable{
@Inject
private ClientFacade clientDAO;
@Inject
private EtiquetteFacade etiquetteDAO;
private List<Client> clientList;
private List<Etiquette> etiquetteList;
private Etiquette chosenEtiquette;
private static Client chosenClient;
*private String etiquetteName;
private User loggedUser;
@PostConstruct
public void init() {
HttpSession session = SessionUtil.getSession();
loggedUser = (User) session.getAttribute("user");
clientList = clientDAO.findClientsByLoggedUser(loggedUser);
etiquetteList = etiquetteDAO.getAllEtiquettes(loggedUser);
}
*public void updateClient() {
System.out.println(etiquetteName);
}
public void delete(Client client) {
clientList.remove(client);
clientDAO.remove(client);
}
public List<Client> getClientList() {
return clientList;
}
public void setClientList(List<Client> clientList) {
this.clientList = clientList;
}
public List<Etiquette> getEtiquetteList() {
return etiquetteList;
}
public void setEtiquetteList(List<Etiquette> etiquetteList) {
this.etiquetteList = etiquetteList;
}
public String getEtiquetteName() {
return etiquetteName;
}
public void setEtiquetteName(String etiquetteName) {
this.etiquetteName = etiquetteName;
}
public Client getChosenClient() {
return chosenClient;
}
public void setChosenClient(Client chosenClient) {
this.chosenClient = chosenClient;
}
}
What I'm trying to achieve is I want to allow user to add label to given client and update that particular client in database. I'm trying to figure out, why whenever I submit my overlayPanel
with commandButton
my value of etiquetteName
is null
? I've already tried to add ajax to selectitems with change
event but nothing seems to work. What am I doing wrong ? I know that later on when I will update my client I will have to convert that String
value to Object
value but for now I want to at least have access for that value in my method.