1

我有一个包含 id 列表的托管 bean。当我使用数据表遍历该列表时,我使用 ah:selectBooleanCheckbox 并将 id 值分配给它,如下所示:

<h:selectBooleanCheckbox value = "#{managedBean.objectMap[<objectKey>]}">

但是,在呈现页面后,我没有看到正在呈现的 value 属性。所以我想知道为什么它没有被渲染?

4

1 回答 1

3

但是,在呈现页面后,我没有看到正在呈现的 value 属性。所以我想知道为什么它没有被渲染?

因为它与触发Boolean. 仅取决于 HTML状态的请求参数null是否足以表示一个. 无论如何都不支持非值。nullcheckedBoolean<h:selectBooleanCheckbox>Boolean

如果您绝对肯定您需要一个复选框值,请<h:selectManyCheckbox>仅将其中一个与单个项目一起使用。

<h:selectManyCheckbox value="#{bean.selectedValues}">
    <f:selectItem itemValue="#{bean.someValue}" itemLabel="#{null}" />
</h:selectManyCheckbox>

或者,如果它实际上是出于 JavaScript 目的(我只是猜测,因为您在 JSF 问题上混淆地标记了而没有在任何地方解释其相关性),那么您也可以使用 HTML5data属性,您可以将其设置为 passthrough 属性(需要 JSF 2.2)。

<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:selectBooleanCheckbox value="#{bean.someBoolean}" a:data-value="#{bean.someValue}" />

它将在 JS 中可用,如下所示:

var value = element.dataset.value;

或 jQuery:

var value = $(element).data("value");

也可以看看:

于 2015-11-08T14:40:12.600 回答