Jsf 为什么<;f:选择项目>;禁用项的情况下="#{expr}";不提交禁用的选择?

Jsf 为什么<;f:选择项目>;禁用项的情况下="#{expr}";不提交禁用的选择?,jsf,jsf-2.2,Jsf,Jsf 2.2,我在我们的应用程序中遇到了一个bug,下面的XHTML代码并没有像我期望的那样工作 <h:selectManyCheckbox value="#{nuv.rollen}" id="rollen" layout="pageDirection"> <f:selectItems var="r" value="#{nuv.findRollen()}" itemLabel="#{r.label}" itemDisabled="#{nuv.isDisabledRolle(r)}"

我在我们的应用程序中遇到了一个bug,下面的XHTML代码并没有像我期望的那样工作

<h:selectManyCheckbox value="#{nuv.rollen}" id="rollen" layout="pageDirection">
    <f:selectItems var="r" value="#{nuv.findRollen()}" itemLabel="#{r.label}" itemDisabled="#{nuv.isDisabledRolle(r)}" />
    <our:entityConverter /><!-- translates our entities back and forth -->
</h:selectManyCheckbox>

setter
nuv.setRollen(List)
调用时使用空列表(至少在所有项都被禁用的情况下),尽管所有禁用的项都在UI中被选中。代码假定所有元素都已取消选择。如果启用了这些项,一切正常


这种行为正常吗?我对此感到非常困惑。

要进一步解释一下。。。罗伦有10个元素。。。它们被渲染为禁用,但已选中。。。但在提交时,列表是空的。我希望所有10个已禁用但已检查的元素都能提交。Ups。。。我刚才评论的答案在哪里?又删除了吗@BalusCmissing属性
itemValue=“#{r}”
用于
f:selectItems
?不,这不会改变任何内容。请记住:已启用的项目正确提交。要进一步解释这一点。。。罗伦有10个元素。。。它们被渲染为禁用,但已选中。。。但在提交时,列表是空的。我希望所有10个已禁用但已检查的元素都能提交。Ups。。。我刚才评论的答案在哪里?又删除了吗@BalusCmissing属性
itemValue=“#{r}”
用于
f:selectItems
?不,这不会改变任何内容。请记住:已启用的项目将正确提交。