日期:2014-05-16 浏览次数:20450 次
package com.jsf.bean;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
public class RegisterAction {
//改变下拉框后,输出框中的内容id
private String result;
//下拉框国家的id
private String selectedContent = null;
//国家列表
private ArrayList countryItems = null;
//下拉框城市的id
private String selectCity = null;
//城市下拉框中的列表
private List cityItems = null;
//定义三个城市的类表
private static List china = new ArrayList();
private static List america = new ArrayList();
private static List japan = new ArrayList();
static{
china.add(new SelectItem("北京","北京",null));
china.add(new SelectItem("上海","上海",null));
china.add(new SelectItem("广州","广州",null));
china.add(new SelectItem("深圳","深圳",null));
america.add(new SelectItem("纽约","纽约",null));
america.add(new SelectItem("华盛顿","华盛顿",null));
america.add(new SelectItem("旧金山","旧金山",null));
america.add(new SelectItem("加州","加州",null));
japan.add(new SelectItem("东京","东京",null));
japan.add(new SelectItem("神户","神户",null));
japan.add(new SelectItem("广岛","广岛",null));
japan.add(new SelectItem("长崎","长崎",null));
}
public String getSelectCity() {
return selectCity;
}
public void setSelectCity(String selectCity) {
this.selectCity = selectCity;
}
public String getSelectedContent() {
return selectedContent;
}
public List getCityItems() {
return cityItems;
}
public void setCityItems(List cityItems) {
this.cityItems = cityItems;
}
public void setSelectedContent(String selectedContent) { //保持下拉框的状态不改变
this.selectedContent = selectedContent;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
//国家下拉类表中的值改变之后的action事件
public void myEvent(ValueChangeEvent e) { //下拉框改变时触发的事件
System.out.println("you change the value fo ");
FacesContext context = FacesContext.getCurrentInstance();
String clientId = e.getComponent().getId();
if (clientId.equals("select")) {
setResult(e.getNewValue().toString());
if(e.getNewValue().toString().equals("中国")){
setCityItems(china);
}
if(e.getNewValue().toString().equals("美国")){
setCityItems(america);
}
if(e.getNewValue().toString().equals("日本")){
setCityItems(japan);
}
}
}
//在创建bean之后,呈现视图之前给国家列表中的内容赋值
public Collection getCountryItems() { //给下拉框赋值
SelectItem aa= new SelectItem();
if (countryItems == null) {
countryItems = new ArrayList();
countryItems.add(new SelectItem("中国", "中国", null));
countryItems.add(new SelectItem("美国", "美国", null));
countryItems.add(new SelectItem("日本", "日本", null));
}
return countryItems;
}
public void setCountryItems(ArrayList<SelectItem> countryItems) {
this.countryItems = countryItems;
}
}<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://