zoukankan      html  css  js  c++  java
  • jsf学习笔记ui

       selectOneRadio用来显示一组单选按钮。由其子UISelectItem或UISelectItems组件配置。(SelectItem可以绑定一个属性,SelectItems可以绑定一个集合)。下面就说一下如何将其值与后台绑定和selectOneRadio在dataTable中如何来循环使用。

    一:给SelectItem赋值,与后台属性绑定

    <h:selectOneRadio value="#{managerBean.value}" >
         <f:selectItem id="item1" itemValue="man"  itemLabel="男"/>
         <f:selectItem id="item2" itemValue="woman"  itemLabel="女"/>
     </h:selectOneRadio>

    注意:

    selectOneRadio中的value值与selectItem中的itemValue的值是相对应的。与后台绑定的managerBean.value的值实际上取的是selectItem中的itemValue值。

    二:给SelectItems赋值,与后台集合绑定

    前台页面:

    <h:panelGrid border="1" columns="2" cellpadding="0" cellspacing="0">
         <h:selectOneRadio id="radio" value="#{roadForm.startVal}"
               <f:selectItems value="#{roadForm.startVector}" />
         </h:selectOneRadio>
    </h:panelGrid>

    SelectItems绑定了一个startVector<SelectItem>集合

    后台代码:

     //定义一个startVector<SelectItem>集合,与前台绑定。

     private Vector<SelectItem> startVector = new Vector<SelectItem>();
     public String setValue() {
        RoadStationView rsView = null;
        Vector<RoadStationView> stationVec = roadManager.getStationNameByName(startName);
        int size = stationVec.size();

        //给startVector循环赋值
       
     for (int i = 0; i < size; i++) {
          rsView = stationVec.get(i);
          startVector.add(new SelectItem(rsView.getStationID(), rsView.getStationName()));
        }
        return "toStarEnd";
    }

    三:在dataTable中使用selectOneRadio

    要想在dataTable中使用selectOneRadio,实现单选按钮循环,就需要用Tomahawk组件 :<t:selectOneRadio />

    JSF中提供的基本组件功能简单,我们常常要借助于第三方组件,来扩展其功能。

    <h:dataTable   id="dt_road" border="1"
       width="100%" value="#{busRoadDataModel.value}" var="busRoad">
        <h:column id="column1">
            <f:facet name="header">
            </f:facet>  
              
    <t:selectOneRadio id="radio" forceId="true" forceIdIndex="false" value="#{managerForm.selectVal}">
                 <f:selectItem itemValue="#{busRoad.roadID}" itemLabel=""></f:selectItem>
              </t:selectOneRadio>
        
        </h:column>  
       <h:column id="column2">
           <f:facet name="header">
                <h:outputText value="线路名" styleClass="min" ></h:outputText>

          </f:facet>

     </h:column>

    </h:dataTable>

    注意 :

    1.在 selectOneRadio 组件中 forceId 属性值必须为"true"。 表示用当前组件的id---"radio" 重写JSF实现自动生成的id。因为我们要实现单选,id名称必须要统一,所以要固定重写。
    2.在 selectOneRadio 组件中 forceIdIndex 属性值必须为"false"。 表示当组件被包含在列表中的时候,是否应当在id属性指定的ID后添加后缀索引(例如[0])。因为要实现单选,所以不能添加后缀。

  • 相关阅读:
    electron 安装失败解决办法
    面向 B 端的产品经理
    如何学习一门新语言或框架
    斑马为什么有条纹?
    沃伦·巴菲特 | 成功的 10/10/10 法则
    如果想进入一家大公司面试,你会怎么做?
    人工智能缺陷与误觉:让机器产生幻觉的「怪异事件」
    20 世纪 70 年代的太空殖民艺术
    如何实现SSH断开后 进程仍然在后台运行
    让Linux关闭终端(关闭SSH等)后,程序继续运行
  • 原文地址:https://www.cnblogs.com/cxyzl/p/2618822.html
Copyright © 2011-2022 走看看