Ajax二级联动(struts)

AjaxTestAction.java
public class AjaxTestAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String name = request.getParameter("name");
        try {
            // 中间用ISO-8859-1过渡
            byte[] b = name.getBytes("ISO-8859-1");
            // 转换成GB2312字符
            name = new String(b, "GB2312");
        } catch (Exception e) {
            e.printStackTrace();
        } 
		String returnName = getSel(name);
		try {
            response.setContentType("text/xml;charset=UTF-8");
            response.setHeader("Cache-Control", "no-cache");
            response.setCharacterEncoding("UTF-8");
            response.getOutputStream().print(returnName);

		} catch (IOException ex) {
			ex.printStackTrace();
		}
		return null;
	}
	public String getSel(String name) {
		if (name.equals("B")) {
			return ("朝阳区,西直门,右安门,宣武区,东四十条");
		}
		if (name.equals("S")) {
			return ("普陀区,浦东,外滩,闸北区,徐家汇");
		}
		if (name.equals("C")) {
			return ("江北区,九龙坡,渝中区,观音桥,南岸,渝北,沙坪坝");
		}
		return "";
	}
}
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config 
PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" 
"http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <action-mappings>
    <action path="/ajaxTestAction" type="ajaxtest.AjaxTestAction" >
     <forward name="success" path="/ajaxTest.jsp"/>
    </action>
  </action-mappings>
  <message-resources parameter="ApplicationResources" />
</struts-config>
ajaxTest.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="Javascript" type="text/javascript">
			function GetResult(str) {
			    var oBao = new ActiveXObject("Microsoft.XMLHTTP");
			    oBao.open("GET","ajaxTestAction.do?name="+str,false);
			    oBao.send();
			    BuildSel(oBao.responseText,document.all.sel2);
			}
			function BuildSel(str,sel) {
		    sel.options.length=0;
		    var arrstr = new Array();
		    arrstr = str.split(",");
		    for(var i=0;i<arrstr.length;i++) {
		        sel.options[sel.options.length]=new Option(arrstr[i],arrstr[i])
		    }
		}
		</script>
<select name="sel" onChange="GetResult(this.value)">
	<option value="">请选择</option>
	<option value="B">北京</option>
	<option value="S">上海</option>
	<option value="C">重庆</option>
</select>
<select name="sel2"></select>

你可能感兴趣的:(apache,Ajax,xml,struts,cache)