2017-08-15 1 views
0

J'essaie d'obtenir des valeurs sélectionnées d'un selectCheckboxMenu en utilisant PrimeFaces 5.3 et JSF 2, mais toujours la liste de sélection est vide.selectCheckboxMenu primefaces retourner vide Liste

Ceci est la partie HTML:

<p:selectCheckboxMenu id="cours" value="#{etudiantController.checkedCours}" 
    converter="#{coursConverter}" label="Liste cours available" multiple="true" 
    panelStyle="width:250px"> 
    <f:selectItems value="#{etudiantController.coursEtudiant}" var="coursEtd" 
     itemLabel="#{coursEtd.libelleCours}" itemValue="#{coursEtd.idCours}" /> 
</p:selectCheckboxMenu> 

partie Bean:

private List<Cours> checkedCours; 

for(Cours coursToAdd : checkedCours){ 
    System.out.println("enter ... !!!"); 
    coursService.addCours(coursToAdd); 
} 

Converter:

public class CoursConverter implements Converter { 

public Object getAsObject(FacesContext context, UIComponent component, String value) { 
    if (value != null && !value.isEmpty()) { 
     return component.getAttributes().get(value); 
    } 
    return null; 
} 

public String getAsString(FacesContext context, UIComponent component, Object value) { 
    if (value == null) { 
     return ""; 
    } 
    if (value instanceof Cours) { 
     Cours cours = (Cours) value; 
     String name = cours.getLibelleCours(); 
     return name; 
    } else { 
     throw new ConverterException(new FacesMessage(value + " est un Cours non valide")); 
    } 
} } 

Le problème ici est qu'il n'a jamais entrer dans le bloc.

Une aide? Merci.

+0

Et quand vous obtenez les valeurs sélectionnées? Sur le formulaire soumettre, non? –

+0

Oui, en utilisant submit. – Spoonatte

+0

Avez-vous ajouté un tag de forme à votre xhtml? –

Répondre

0

Essayez la fixation d'un Id à votre convertisseur et de l'appeler en utilisant cet identifiant

@FacesConverter("coursConverter") 
public class CoursConverter implements Converter { 
    ... 
} 

-

<p:selectCheckboxMenu id="cours" value="#{etudiantController.checkedCours}" 
    converter="coursConverter" label="Liste cours available" multiple="true" 
    panelStyle="width:250px"> 
    <f:selectItems value="#{etudiantController.coursEtudiant}" var="coursEtd" 
    itemLabel="#{coursEtd.libelleCours}" itemValue="#{coursEtd.idCours}" />