用struts实现动态联动下拉框的问题---请熟悉这方面的高手务必进来看一下,谢谢 用ajax啊,留下mail,给你例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ajax是什么?--我还没有用过啊我的email:[email protected] 先谢谢了 我贴出来算了,不过那样要自己部署servlethtml代码:html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>MyHtml.html</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head><script type="text/javascript">function getResult(stateVal) { var url = "servlet/SelectCityServlet?state="+stateVal; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); }else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } if(req){ req.open("GET",url, true); req.onreadystatechange = complete; req.send(null); } } function complete(){ if (req.readyState == 4) { if (req.status == 200) { var city = req.responseXML.getElementsByTagName("city"); alert(city.length); var str=new Array(); for(var i=0;i<city.length;i++){ str[i]=city[i].firstChild.data; } alert(document.getElementById("city")); buildSelect(str,document.getElementById("city")); } }}function buildSelect(str,sel) { sel.options.length=0; for(var i=0;i<str.length;i++) { sel.options[sel.options.length]=new Option(str[i],str[i]) }}function test(){ alert("test");}</script><body>不变的静止内容<BR /><BR /><select name="state" onChange="getResult(this.value)"> <option value="">请选择</option> <option value="zj">浙江</option> <option value="zs">江苏</option></select><select id="city"></select><BR /><BR />不用重新刷新</body></html> Servlet代码:package com.stephen.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @author stephen * * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */public class SelectCityServlet extends HttpServlet { public SelectCityServlet() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); response.setHeader("Cache-Control", "no-cache"); String state = request.getParameter("state"); StringBuffer sb = new StringBuffer("<state>"); if ("zj".equals(state)) { sb.append("<city>杭州</city><city>湖州</city>"); } else if ("zs".equals(state)) { sb.append("<city>南京</city><city>扬州</city><city>苏州</city>"); } sb.append("</state>"); PrintWriter out = response.getWriter(); out.write(sb.toString()); out.close(); }}我这个servlet数据是写死的,你可以从数据库取了写灵活的,自己部署一个小项目可以看看结果 不行啊,servlet类编译后,然后运行,没有反应啊!我改动的唯一地方就是将var url = "servlet/SelectCityServlet?state="+stateVal; 改为了var url = "com/servlet/SelectCityServlet?state="+stateVal; //com为我编译的路径 晕,servlet要配置在web服务器下的啊,又不是javac编译了就能跑的 算了,我还是压个rar给你吧,解压后放到tomcat/webapps下面,跑起来看 樓上的給我一份rar吧,mail:[email protected]最好能放到哪可以下載。因為公司不能收外部mail. mail已发,内容是个eclipse做的项目,导进去部署一下就可以了 to li_d_s(我是小鬼-日货?送我都不要,哪怕是丰田和日产的轿车!) 我没有收到附件啊,是不是附件很大?--我给你写了回信 你是我的恩人!!!请也我一份rar[email protected] session 怎么用的? 关于httpServlet的问题 struts2中重复提交问题 如何在weblogic 9下面设置 polling interval time? Hibernate HQL左连接如何指定连接条件? 如何获取web-inf下自定义文件的内容? 各位高手,请教一下怎么考虑web service的并发性阿? struts结构!JSP页面出错!请大家帮忙! 在jbuilder+weblogic,struts下,关于cmp和和struts中Action相互调用的问题 <iframe>实现异步加载 JAVA怎么读取网上邻居的文件,并写到本地啊?? 如何关闭数据库连接。。
html代码:html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MyHtml.html</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head>
<script type="text/javascript">
function getResult(stateVal) {
var url = "servlet/SelectCityServlet?state="+stateVal;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if(req){
req.open("GET",url, true);
req.onreadystatechange = complete;
req.send(null);
}
}
function complete(){
if (req.readyState == 4) {
if (req.status == 200) {
var city = req.responseXML.getElementsByTagName("city");
alert(city.length);
var str=new Array();
for(var i=0;i<city.length;i++){
str[i]=city[i].firstChild.data;
}
alert(document.getElementById("city"));
buildSelect(str,document.getElementById("city"));
}
}
}
function buildSelect(str,sel) {
sel.options.length=0;
for(var i=0;i<str.length;i++) {
sel.options[sel.options.length]=new Option(str[i],str[i])
}
}
function test(){
alert("test");
}
</script>
<body>
不变的静止内容
<BR />
<BR />
<select name="state" onChange="getResult(this.value)">
<option value="">请选择</option>
<option value="zj">浙江</option>
<option value="zs">江苏</option>
</select>
<select id="city"></select>
<BR />
<BR />
不用重新刷新
</body>
</html>
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/**
* @author stephen
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class SelectCityServlet extends HttpServlet { public SelectCityServlet() {
super();
} public void destroy() {
super.destroy();
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
String state = request.getParameter("state");
StringBuffer sb = new StringBuffer("<state>");
if ("zj".equals(state)) {
sb.append("<city>杭州</city><city>湖州</city>");
} else if ("zs".equals(state)) {
sb.append("<city>南京</city><city>扬州</city><city>苏州</city>");
}
sb.append("</state>");
PrintWriter out = response.getWriter();
out.write(sb.toString());
out.close();
}}我这个servlet数据是写死的,你可以从数据库取了写灵活的,自己部署一个小项目可以看看结果
我改动的唯一地方就是将var url = "servlet/SelectCityServlet?state="+stateVal; 改为了
var url = "com/servlet/SelectCityServlet?state="+stateVal; //com为我编译的路径
最好能放到哪可以下載。因為公司不能收外部mail.
我没有收到附件啊,是不是附件很大?--我给你写了回信
[email protected]