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>