0

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.

Baniak
  • 25
  • 1
  • 6

0 Answers0