Salut,
J'ai une problème de vérifier la valeur du checkbox dans un tableau crée dynamiquement dans JSF, l'idée est de récupérer les UI component dans notre cas on parle de UISELECTBOOLEAN, j'ai réussi à générer les identifiant de façon dynamique mais reste de rcupérer la valeur booléenne du checkbox.
voila le code de L'interface:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <?xml version="1.0" encoding="UTF-8"?> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" template="/WEB-INF/templates/sama.xhtml"> <ui:define name="content"> <h:form id="updateFrm" class="popup"> <!-- Displaying the headline --> <h1>Roles</h1> size==#{jobCardController.checkedBoxReadOnly.size()} <table id="table" border="2" style="border-collapse: collapse;"> <tr> <td></td> <c:forEach items="#{jobCardController.getAllScreens()}" var="screen"> <td>#{screen.screenName}</td> </c:forEach> </tr> <c:forEach items="#{jobCardController.getAllRoles()}" var="role"> <tr> <td>#{role.roleName}</td> <c:forEach items="#{jobCardController.getAllScreens()}" var="screen"> <td> <div style="margin-left: 10px"> <span style="margin-right: 11px;">R</span> <h:selectBooleanCheckbox id="R_#{screen.screenId}_#{role.roleId}" value="#{jobCardController.checkedBoxReadOnly[role]}"> </h:selectBooleanCheckbox> <br /> <span>RW</span> <h:selectBooleanCheckbox id="RW_#{screen.screenId}_#{role.roleId}" value="#{jobCardController.checkedBoxReadWrite[role]}"> </h:selectBooleanCheckbox> </div> </td> </c:forEach> </tr> </c:forEach> </table> <br /> <br /> <br /> <h:commandButton value="#{label['lbl.button.save']}" id="ss" action="#{jobCardController.savePrivileges()}"> </h:commandButton> </h:form> </ui:define> </ui:composition>
et voila le code que j'utilise pour récupérer la valuer du checkbox(UISelectBooleen)
La valeur de isSselected est toujours "false".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 FacesContext context = FacesContext.getCurrentInstance(); UIComponent comp = context.getViewRoot().findComponent("updateFrm"); for (UIComponent c : comp.getChildren()) { if (c instanceof UISelectBoolean) { UISelectBoolean checkbox = (UISelectBoolean) c; boolean b = checkbox.isSelected();
merci d'avance de m'aider.
Partager