我正在尝试发送<select>
对于 JSF 托管 bean 来说很有价值,但我不知道如何制作它。
我的代码是:
<select id="cb-frentes" required="required" jsf:value="#{checkstyleBean.frente}">
<option value=""/>
<ui:repeat var="frente" value="#{appBean.frentes}">
<option value="#{frente}" label="#{frente}"/>
</ui:repeat>
</select>
这是行不通的。的价值frente
属性总是null
,当我调用我的操作方法时。
我怎样才能进行这种绑定?
The <option>
元素默认不被识别为直通元件。它没有列出在Java EE 教程第 8.9 章“HTML5 友好标记”的表 8.4 https://docs.oracle.com/javaee/7/tutorial/jsf-facelets009.htm.
您需要明确告知底层 JSF 组件。您可以使用jsfc
令人惊讶的是,Java EE 7 教程中没有提及该属性(可能是因为它是 Facelets(视图技术)的一部分,而不是 JSF 的一部分)。
<select id="cb-frentes" required="required" size="1" jsf:value="#{checkstyleBean.frente}">
<option value="#{null}" jsfc="f:selectItem" />
<ui:repeat value="#{appBean.frentes}" var="frente" jsfc="f:selectItems">
<option value="#{frente}">#{frente}</option>
</ui:repeat>
</select>
请注意,我将第一个选项的值明确固定为#{null}
,并且我修复了设置选项标签的错误方法。此外我还添加了size="1"
to the <select>
,否则默认情况下它呈现为列表框而不是下拉列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)