Java 如何在JSF中创建一组h:selectOneRadio?

Java 如何在JSF中创建一组h:selectOneRadio?,java,jsf,Java,Jsf,我试图创建一组h:selectOneRadio,但ui:repeat为每一行提供了不同的id。这是我的代码:- <ui:repeat id="themes" value="#{RegisterBean.objBlogTemplateList}" var="item"> <p:graphicImage alt="#{item.template

我试图创建一组h:selectOneRadio,但ui:repeat为每一行提供了不同的id。这是我的代码:-

                                <ui:repeat id="themes" value="#{RegisterBean.objBlogTemplateList}" var="item">

                                    <p:graphicImage  alt="#{item.templatePicName}" style="border: solid 5px white;width: 200px;height: 200px;"  value="#{app:getCommonImagePath(item.templatePicName)}"/>

                                    <h:selectOneRadio rendered="false"  value="#{RegisterBean.blogTemplateId}" layout="lineDirection"  id = "rdTemplateId">
                                        <f:selectItem itemLabel="#{item.templateName}"  itemValue="#{item.templateId}"/>
                                    </h:selectOneRadio>

                                </ui:repeat>


实际上,我想创建一个单选按钮,其中包含不同的selectItems,它们应该来自数据库中我的表的行。如何操作?

支持
layout=“spread”
,这样您就可以将单个选项按钮从单个组中展开。

听起来您更需要


...

您可以使用
SelectItem[]
列表
映射
,为其提供信息。如果使用现成的JSF组件,则无法实现这一点。但是,实现自定义渲染器来完成您所追求的目标是相当容易的。我建议将图像URL转储到SelectItem描述字段中,因为这几乎从未使用过。然后在渲染器中,只需将该值放入IMG标记中


我已经写了一些关于SelectBox的自定义渲染器的内容,这对您来说应该是一个相同的过程。

顺便说一句,这在数据表中的循环中并不容易。也许我误解了这个问题。起初,我想到了f:selectItems,但随后,每行都有一张桌子和一台收音机,这引发了一些想法。我经历了完全相同的场景,t:selectOneRadio很容易做到。让我们看看他到底想要什么:)嗨,波佐,你可以想象我的要求是“h:selectOneRadio inside datatable”。我读了BalusC的文章并实现了它。这是可行的,但并不容易做到。我的要求是:-假设我的表中有三行是“Apple,Mango,Banana”,我有三个图像是“Apple.jpg,,Mango.jpg,Banana.jpg”。我希望界面像:-苹果照片显示,然后苹果选项,香蕉照片显示,然后香蕉照片显示,然后芒果照片显示和芒果选项。“。它们作为一个组,意味着我只能选择其中一个。我不能使用f:selectItems,因为在其中我不能放置标记。如果我仍然不清楚,请让我知道。功能要求不清楚。“带有不同项目的单个单选按钮”?那是不可能的。每个按钮只能有一个项目。请详细说明。它们究竟应该如何分组?你的意思是不是每行要一组按钮?换句话说:每一行都有它自己的一组相关按钮?嗨,巴卢斯克,如果我想显示图形图像,怎么办?我尝试将h:graphicImage放在f:selectItems标记中,但没有成功。要么抓取CSS/JS,要么使用另一个组件(如果我没有记错的话,RichFaces有一个),或者覆盖渲染器。
<h:dataTable value="#{bean.items}" var="#{item}">
    <h:column>
        <h:selectOneRadio value="#{item.selectedTemplate}">
            <f:selectItems value="#{bean.availableTemplates}" />
        </h:selectOneRadio>
    </h:column>
    ...