您的位置:首页 > Web前端 > JavaScript

JSF中selectOneRadio(单选按钮)的相关问题(包括在dataTable里的循环使用)

2009-10-06 13:36 337 查看
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])。因为要实现单选,所以不能添加后缀。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: