HTML 5 下拉菜单和 JSF 2.2

2024-01-10

我正在尝试发送<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(使用前将#替换为@)

HTML 5 下拉菜单和 JSF 2.2 的相关文章

随机推荐