struts2 jquery ajax json 实现下拉框动态添加下拉项

Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中。

下面是一个使用struts2 jquery ajax json 实现下拉框动态下拉项方案:

1、AjaxTestAction.java

package com.suyuening.action;

import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import com.suyuening.bean.SelectBean;

public class AjaxTestAction extends ActionSupport {
	private static final long serialVersionUID = 1172098980143890997L;
	/** 城市列表 */
	private List cityList;
	/** 省 */
	private String province;

	/**
	 * 取得城市列表
	 * 
	 * @return
	 */
	public String getCityListForAjax() {
		try {
			// 城市列表一般从数据库取得,这里为简便直接写了固定值。
			cityList = new ArrayList();
			SelectBean cityBean = new SelectBean();
			cityBean.setSelectcode("010");
			cityBean.setSelectcode("北京");
			cityList.add(cityBean);
			cityBean = new SelectBean();
			cityBean.setSelectcode("021");
			cityBean.setSelectcode("上海");
			cityList.add(cityBean);

		} catch (Exception e) {
			e.printStackTrace();
		}
		return SUCCESS;
	}

	public List getCityList() {
		return cityList;
	}

	public void setCityList(List cityList) {
		this.cityList = cityList;
	}

	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

}

2、AjaxTestAction.xml


3、js方法

function bindCitySelect()
{
        // 省文本框值
	var province = ('#province').val();
	
	var options = "-----请选择-----";
	
	if (province != "") {		
		var url="ajaxTestAction!getCityListForAjax.action?province="+province;.post(url,function(callback){
			var cityList= eval('(' + callback + ')').cityList;
			if(cityList!= null && cityList!= ""){
				.each(cityList,function(index,item){							
					options+="" + item.selectname + "";
				});('#city').empty().append((options));
			}
		});
	} else {('#city').empty().append($(options));
	}
}

4、jsp文件

省:
			      <input id="province" name="province" size="5" type="text" />
			  市:<select id="city" name="city">
<option value="">-----请选择-----</option>

</select>
			   
			

5、SelectBean.java

package com.suyuening.bean;

public class SelectBean {
	private String selectcode;
	private String selectname;

	public String getSelectcode() {
		return selectcode;
	}

	public void setSelectcode(String selectcode) {
		this.selectcode = selectcode;
	}

	public String getSelectname() {
		return selectname;
	}

	public void setSelectname(String selectname) {
		this.selectname = selectname;
	}
}