Comment savoir la valeur des checkbox dans un tableau crée dynamiquement dans JSF
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:
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)
Code:
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(); |
La valeur de isSselected est toujours "false".
merci d'avance de m'aider.