深入研究RadioRenderer
源代码,我注意到以下内容:
方法
@Override
protected void renderOption(FacesContext context,
UIComponent component,
Converter converter,
SelectItem curItem,
Object currentSelections,
Object[] submittedValues,
boolean alignVertical,
int itemNumber,
OptionComponentInfo optionInfo) throws IOException
RadioRenderer
从标准 public void encodeEnd(FacesContext context, UIComponent component)
Renderer 方法调用类中的覆盖。但是有以下一段代码:
Iterator<SelectItem> items =
RenderKitUtils.getSelectItems(context, component);
//some code
while (items.hasNext()) {
SelectItem curItem = items.next();
idx++;
// If we come across a group of options, render them as a nested
// table.
if (curItem instanceof SelectItemGroup) {
// do some
else {
// do another
}
}
因此,我通过示例进行了尝试:
<h:selectOneRadio>
<f:selectItem />
<f:selectItems value="#{myBean.vals}" />
<f:selectItems value="#{myBean.valss}" />
</h:selectOneRadio>
并且 theselectItem
和selectItems
es 被视为不是SelectItemGroup
. 因为selectItem
这非常清楚,但我希望这selectItems
会映射到SelectItemGroup
实例。
你就不能稍微澄清一下吗?