我有一个关于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
答案 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)检查的情况下,没有子选择项目标签。