It's not exactly that, but you could use Tomahawk's <t:selectOneRadio>
with the layout
attribute set to "spread"
to have a markupless rendering of radio buttons. You can then use <t:radio>
to place the individual radio buttons in the markup the way you want, such as in a <h:panelGrid columns="4">
.
E.g.
<t:selectOneRadio id="foo" value="#{bean.selectedItem}" layout="spread">
<f:selectItems value="#{bean.availableItems}" />
</t:selectOneRadio>
<h:panelGrid columns="4">
<t:radio for="foo" index="0" />
<t:radio for="foo" index="1" />
<t:radio for="foo" index="2" />
<t:radio for="foo" index="3" />
<t:radio for="foo" index="4" />
<t:radio for="foo" index="5" />
<t:radio for="foo" index="6" />
<t:radio for="foo" index="7" />
</h:panelGrid>
or even when the amount of radio buttons is unspecified
<h:panelGrid columns="4">
<c:forEach items="#{bean.availableItems}" varStatus="loop">
<t:radio for="foo" index="#{loop.index}" />
</c:forEach>
</h:panelGrid>
(note that <ui:repeat>
is not suitable as it runs during view render time and thus end up as a single column of <h:panelGrid>
, you'd need to use plain HTML <table>
instead)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…