Ajax二级联动(struts)

本文介绍了一个使用Struts框架实现Ajax请求的具体示例。该示例通过下拉菜单选择不同城市,利用Ajax异步获取并显示对应的地区信息。文章展示了如何在Struts配置文件中设置Ajax操作路径,并提供了关键的Java代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值