使用撇号3.3和jsf 2.0将数据网格内部的单选按钮分组

问题描述 投票:1回答:2

我是jsf 2.0的新手,因此我面临一个严重的问题,将主要面孔datagrid和单选按钮分组。我正在使用JSF 2.0-Primefaces 3.3,java 1.6,并在Windows操作系统的tomcat服务器上运行我的应用程序。

问题是对数据网格和单选按钮进行分组。以下段落将描述示例代码:

    @ManagedBean(name="quickBill")
    @ViewScoped
    public class QuickBill extends BaseManagedBean implements Serializable {
private List<String[]> insurerIDs=null;

@PostConstruct
public void init(){

    loadInsurer();
}   

private void loadInsurer(){
    logger.info("Entered Load Insurer");
    insurerIDs = new ArrayList<String[]>();

    if (null != insurerList) {
        insurerIDs.add(new String[] {"InsurerID1","Insurer_Name1") });
        insurerIDs.add(new String[] {"InsurerID2","Insurer_Name2") });
        insurerIDs.add(new String[] {"InsurerID3","Insurer_Name3") });
        insurerIDs.add(new String[] {"InsurerID4","Insurer_Name4") });

    }
}
public List<String[]> getinsurerIDs() {
    return insurerIDs;

}


  }

jsf代码如下:

    <p:dataGrid  var="quickBillVar" value="#{quickBill.insurerIDs}" columns="4" > 
        <p:column selectionMode="single">                              
           <p:selectOneRadio id="options" value="#{quickBill.selectedOption}">                    
          <f:selectItem itemLabel="#{quickBillVar[1]}" itemValue="#{quickBillVar[1]}"/>   
          </p:selectOneRadio>   
          <p:commandLink id="insurerid"  title="Isurer">
   <p:graphicImage value="../../images/insurers1/#{quickBillVar[0]}.jpg"/>   
 </p:commandLink>   
   </p:column>                                  
   </p:dataGrid>

上面的代码在执行时导致显示单选按钮,允许用户同时选择多个单选按钮。但是,要求是限制用户只能选择一个按钮,而不是允许用户一次选择多个按钮。我还使用了selectionMode =“ single”来产生预期的输出,但是并没有太大帮助。

请帮助我,或者提供一些可以克服此问题的示例。

jsf-2
2个回答
0
投票

我相信此示例中的自定义布局会有所帮助。https://www.primefaces.org/showcase/ui/input/oneRadio.xhtml


0
投票

您可以使用Map尝试以下代码。

Backing bean code

String selectedInsurer;
Map<String,String> insurerIDs = new LinkedHashMap<String,String>();
insurerIDs.put("InsurerID1", "Insurer_Name1"); //(label, value)
insurerIDs.put("InsurerID2", "Insurer_Name2");
insurerIDs.put("InsurerID3", "Insurer_Name3");
insurerIDs.put("InsurerID4", "Insurer_Name4");
//-- getter & setter 

在前端

<h:selectOneRadio value="#{quickBill.selectedInsurer}">
    <f:selectItems value="#{quickBill.insurerIDs}" />
</h:selectOneRadio>
© www.soinside.com 2019 - 2024. All rights reserved.