将 h:selectBooleanCheckbox 的值属性呈现为 HTML 的先决条件是什么
What is pre-requisite for value attribute of h:selectBooleanCheckbox to be rendered to HTML
我有一个包含 ID 列表的托管 bean。当我使用数据 table 遍历该列表时,我使用 h:selectBooleanCheckbox 并将 id 值分配给它,如下所示:
<h:selectBooleanCheckbox value = "#{managedBean.objectMap[<objectKey>]}">
但是,在呈现页面后,我没有看到正在呈现的 value 属性。所以我想知道为什么它没有被渲染?
However, after the page is rendered, I don't see the value attribute being rendered. So I wanted to know why it is not being rendered?
因为它与触发 Boolean
无关。仅请求参数是 null
或非 null
取决于 HTML checked
状态就足以表示 Boolean
。 <h:selectBooleanCheckbox>
无论如何都不支持非 Boolean
值。
如果您绝对确定需要一个复选框值,请仅对一个项目使用 <h:selectManyCheckbox>
。
<h:selectManyCheckbox value="#{bean.selectedValues}">
<f:selectItem itemValue="#{bean.someValue}" itemLabel="#{null}" />
</h:selectManyCheckbox>
或者,如果它实际上是为了 JavaScript 目的(我只是猜测,因为你在 JSF 问题上混淆地标记了 javascript 而没有在任何地方解释其相关性),那么你也可以使用 HTML5 data
可以设置为直通属性的属性(需要 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");
另请参阅:
- How to use <h:selectBooleanCheckbox> in <h:dataTable> to select multiple rows?
我有一个包含 ID 列表的托管 bean。当我使用数据 table 遍历该列表时,我使用 h:selectBooleanCheckbox 并将 id 值分配给它,如下所示:
<h:selectBooleanCheckbox value = "#{managedBean.objectMap[<objectKey>]}">
但是,在呈现页面后,我没有看到正在呈现的 value 属性。所以我想知道为什么它没有被渲染?
However, after the page is rendered, I don't see the value attribute being rendered. So I wanted to know why it is not being rendered?
因为它与触发 Boolean
无关。仅请求参数是 null
或非 null
取决于 HTML checked
状态就足以表示 Boolean
。 <h:selectBooleanCheckbox>
无论如何都不支持非 Boolean
值。
如果您绝对确定需要一个复选框值,请仅对一个项目使用 <h:selectManyCheckbox>
。
<h:selectManyCheckbox value="#{bean.selectedValues}">
<f:selectItem itemValue="#{bean.someValue}" itemLabel="#{null}" />
</h:selectManyCheckbox>
或者,如果它实际上是为了 JavaScript 目的(我只是猜测,因为你在 JSF 问题上混淆地标记了 javascript 而没有在任何地方解释其相关性),那么你也可以使用 HTML5 data
可以设置为直通属性的属性(需要 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");
另请参阅:
- How to use <h:selectBooleanCheckbox> in <h:dataTable> to select multiple rows?