Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF Repeat nog在复选框中显示值_Java_Jsf - Fatal编程技术网

Java JSF Repeat nog在复选框中显示值

Java JSF Repeat nog在复选框中显示值,java,jsf,Java,Jsf,我正在将一个hashmap(由一个对象+一个布尔值组成)传递到我的视图中,我希望显示每个对象的布尔值,当前有以下代码: <ui:repeat var="item" value="#{userTypeController.permissionItems}"> <h:outputText value="#{item}" /> <h:selectBooleanCheckbox value="#

我正在将一个hashmap(由一个对象+一个布尔值组成)传递到我的视图中,我希望显示每个对象的布尔值,当前有以下代码:

<ui:repeat var="item" value="#{userTypeController.permissionItems}">
                    <h:outputText value="#{item}" />
                    <h:selectBooleanCheckbox value="#{userTypeController.checkMap[item]}"/>
    </ui:repeat>

以及Hashmap方法:

    public Map<Permission, Boolean> getCheckMap() {
    checkMap = null;
    for (Permission p : getPermissionItems()) {
        if (getPermissionItemsUserType().contains(p))
            checkMap.put(p, Boolean.TRUE);
        else
            checkMap.put(p, Boolean.FALSE);
        System.out.println(checkMap.get(p).toString());
    }
    return checkMap;
}
publicmap getCheckMap(){
checkMap=null;
对于(权限p:getPermissionItems()){
如果(getPermissionItemsUserType()包含(p))
checkMap.put(p,Boolean.TRUE);
其他的
checkMap.put(p,Boolean.FALSE);
System.out.println(checkMap.get(p.toString());
}
返回复选图;
}
这应该可以工作,在system.out.println期间,我看到一个真实的输出


但是,复选框本身从未被选中。。。你知道我做错了什么吗?

你描述的匹配症状碰巧在2.1.1中修复,并在2.1.4中正式修复。所以,Mojarra至少应该满足2.1.1的要求


请注意,您的代码中有一个主要错误。您没有实例化
检查映射
,它将抛出
NullPointerException
,尽管这似乎过于简化了问题的代码。而且,在getter中执行此操作是一个坏主意。它应该在(post)构造或事件侦听器方法期间完成。在呈现响应期间,可以多次调用getter。另请参见。

升级到2.1.4后,仍然存在相同的问题。。。还有什么我可以尝试的吗?好吧,不要在getter中执行逻辑,而是在(post)构造函数或任何在呈现响应阶段之前只调用一次的方法中执行逻辑。否则,有效的SSCCE将非常有用,因为您的SSCCE包含bug。