如何使用ui:repeat组件渲染更多JSF组件?

时间:2014-04-17 16:50:49

标签: java jsf

我有一个关于jsf组件的问题。这是一个小代码示例:

<ui:repeat var="bean" value="myBean.myListToIterate">
    <h:selectOneCheckbox value="#{myBean.specificField}" />
    #{bean.car.name} 
</ui:repeat>

问题1:为什么表达式#{bean.car.name}仅在ui:repeat元素中,为什么不在

中?

<h:outputLabel value="#{bean.car.name}" />“?

如果我使用此功能,则不会显示任何内容。

问题2:为什么这个例子看起来不太好,如果我使用

<h:selectOneRadio value="#{myBean.specificField}"/>组件

而不是

<h:selectOneCheckbox value="#{myBean.specificField}"/>组件?

格尔茨 Marwief

1 个答案:

答案 0 :(得分:0)

回答1:
在最后的JSF版本中允许使用EL JSF表达式。所以可以放置没有任何包装标签(如<h:outputText />) 使用此<h:outputLabel value="#{bean.car.name}" />没有给出结果,因为您没有指定要指向的for属性,以便将其呈现为其客户端ID的label,这意味着它无法使用单独

回答2:
首先,这个JSF标记<h:selectOneCheckbox />不存在,也许你想表示<h:selectBooleanCheckbox />。通过<h:selectOneRadio ... />替换它看起来不太好,因为最后一个需要<f:selectItem /><f:selectItems />来保留最终用户可以在哪里选择的选项(即至少2个选项) ),相反于<h:selectBooleanCheckbox />,在单独选择(un)检查的情况下,没有子选择项目标签。