1.页面
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<a4j:region><tr>
<td
align="right" class="zcbktd">
国籍:
</td>
<td align="left" class="zcbktd">
<h:selectOneMenu id="t1id" value="#{projectBean.t1}" required="true">
<f:selectItem itemLabel="选择国籍" itemValue=""/>
<a4j:support action="#{projectBean.changeNationPct1}"
event="onchange"
reRender="t2id,t3id,t4id"></a4j:support>
<f:selectItems value="#{projectBean.listNationPct1}" />
</h:selectOneMenu>
<span style="color:red;">*</span>
<h:message for="t1id"></h:message>
</td>
</tr>
<tr>
<td
align="right" class="zcbktd">
省:
</td>
<td align="left" class="zcbktd">
<h:selectOneMenu id="t2id" value="#{projectBean.t2}">
<f:selectItem itemLabel="选择省类别" itemValue=""/>
<a4j:support action="#{projectBean.changeNationPct2}"
event="onchange"
reRender="t3id,t4id"></a4j:support>
<f:selectItems value="#{projectBean.listNationPct2}" />
</h:selectOneMenu>
</td>
</tr>
<tr>
<td
align="right" class="zcbktd">
市:
</td>
<td align="left" class="zcbktd">
<h:selectOneMenu id="t3id" value="#{projectBean.t3}">
<f:selectItem itemLabel="选择市类别" itemValue=""/>
<a4j:support action="#{projectBean.changeNationPct3}"
event="onchange"
reRender="t4id"></a4j:support>
<f:selectItems value="#{projectBean.listNationPct3}" />
</h:selectOneMenu>
</td>
</tr>
<tr>
<td
align="right" class="zcbktd">
县:
</td>
<td align="left" class="zcbktd">
<h:selectOneMenu id="t4id" value="#{projectBean.t4}">
<f:selectItem itemLabel="选择县类别" itemValue=""/>
<f:selectItems value="#{projectBean.listNationPct4}" />
</h:selectOneMenu>
</td>
</tr>
</a4j:region>
2.表结构
CREATE TABLE [dbo].[nationPct] (
[id] [int] NOT NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[fatherId] [int] NULL ,
[classId] [int] NULL , //国家是1,省2,市3,区4
[subCode] [varchar] (64) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
insert nationPct(id,name,fatherId,classId,subCode) values( 1 , '中国' , 0 , 1 , '1-' )
insert nationPct(id,name,fatherId,classId,subCode) values( 2 , '美国' , 0 , 1 , '2-' )
insert nationPct(id,name,fatherId,classId,subCode) values( 3 , '湖北省' , 1 , 2 , '1-3-' )
insert nationPct(id,name,fatherId,classId,subCode) values( 4 , '武汉市' , 3 , 3 , '1-3-4-' )
insert nationPct(id,name,fatherId,classId,subCode) values( 5 , '青山区' , 4 , 4 , '1-3-4-5-' )
3.
projectBean.java
private List listNewsType1;// 一级标题
private Integer t1;
private List listNewsType2;// 二级标题
private Integer t2;
private List listNewsType3;// 三级标题
private Integer t3;
private SelectItem[] itemTjs = { new SelectItem(1, "是"),
new SelectItem(0, "否") };
public List getListNewsType1() {
this.listNewsType1 = new ArrayList();
List list = newstypeService.findAll();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Newstype nt = (Newstype) list.get(i);
if (nt.getClassId() == 1) {
this.listNewsType1.add(new SelectItem(nt.getToid(), nt
.getTnewstype()));
}
}
}
return listNewsType1;
}
public void changeNewsType1() {
List list = newstypeService.getNewsTypeByFather(getT1());
this.listNewsType2 = new ArrayList();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Newstype nt = (Newstype) list.get(i);
this.listNewsType2.add(new SelectItem(nt.getToid(), nt
.getTnewstype()));
}
}
}
public void changeNewsType2() {
List list = newstypeService.getNewsTypeByFather(getT2());
this.listNewsType3 = new ArrayList();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Newstype nt = (Newstype) list.get(i);
this.listNewsType3.add(new SelectItem(nt.getToid(), nt
.getTnewstype()));
}
}
}
public void setListNewsType2(List listNewsType2) {
this.listNewsType2 = listNewsType2;
}
public void getNewsTypes() {
this.listNewsType = new ArrayList();
List list = newstypeService.findAll();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Newstype nt = (Newstype) list.get(i);
this.listNewsType.add(new SelectItem(nt.getToid(), nt
.getTnewstype()));
}
}
}
public List getListNewsType2() {
if (listNewsType2 == null) {
this.listNewsType2 = new ArrayList();
List list = newstypeService.findAll();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Newstype nt = (Newstype) list.get(i);
if (nt.getClassId() == 2) {
this.listNewsType2.add(new SelectItem(nt.getToid(),
nt
.getTnewstype()));
}
}
}
return listNewsType2;
}
return listNewsType2;
}
public void setListNewsType1(List listNewsType1) {
this.listNewsType1 = listNewsType1;
}
public List getListNewsType3() {
if (listNewsType3 == null) {
this.listNewsType3 = new ArrayList();
List list = newstypeService.findAll();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Newstype nt = (Newstype) list.get(i);
if (nt.getClassId() == 3) {
this.listNewsType3.add(new SelectItem(nt.getToid(),
nt
.getTnewstype()));
}
}
}
}
return listNewsType3;
}