Bonjour à tous et à toutes,
Je reviens vers vous puisque je rencontre un problème qui me semblerais être un problème de mise à jour dont je n'arrive pas à résoudre.
Dans mon application, j'utilise le même principe que l'exemple sur le site de primefaces "SelectCheckboxMenu" http://www.primefaces.org/showcase/u...kboxMenu.xhtml, qui se présente comme suite :
- une liste permettant de sélectionner une liste de villes.
- un bouton permettant d'afficher dans une liste la liste des éléments sélectionnés.
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <h:form> <h:panelGrid columns="3" cellpadding="5"> <h:outputLabel for="menu" value="Location:" /> <p:selectCheckboxMenu id="menu" value="#{checkboxView.selectedCities}" label="Cities" filter="true" filterMatchMode="startsWith" panelStyle="width:250px"> <f:selectItems value="#{checkboxView.cities}" /> </p:selectCheckboxMenu> <p:commandLink value="Submit" update="display" /> </h:panelGrid> <p:outputPanel id="display" style="width:250px;padding-left:5px;margin-top:10px"> <p:dataList value="#{checkboxView.selectedCities}" var="city" emptyMessage="No cities selected"> #{city} </p:dataList> </p:outputPanel> </h:form>Quand je met en place cet exemple en sélectionnant des villes, aucun élément sélectionné ne s'affiche dans la liste (puisque quand je regarde la liste "selectedCities" elle ne contient aucun élément). Je rencontre donc un problème de binding que je n'arrive pas à ressoudre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 package org.primefaces.showcase.view.input; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; @ManagedBean public class CheckboxView { private String[] selectedCities; private List<String> cities; @PostConstruct public void init() { cities = new ArrayList<String>(); cities.add("San Francisco"); cities.add("London"); cities.add("Paris"); cities.add("Istanbul"); cities.add("Berlin"); cities.add("Barcelona"); cities.add("Rome"); cities.add("Sao Paulo"); cities.add("Amsterdam"); } public String[] getSelectedCities() { return selectedCities; } public void setSelectedCities(String[] selectedCities) { this.selectedCities = selectedCities; } public List<String> getCities() { return cities; } }
Est-ce que quelqu'un a déjà eu ce probleme ? Comme avez-vous fait pour le contourner ?
Cordialement,
fed1023
Partager