<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<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">
-->
<script type="text/javascript">
var xmlhttp;
function createXMLHttp(){
if(window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
}
function getLevel2(){
createXMLHttp();
url="info.do?id="+document.forms.form1.select1.value;
alert(url);
xmlhttp.open("get",url,true);
xmlhttp.onreadystatechange=function callback(){
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
addOption();
}
}
};
xmlhttp.send(null);
}
function clearlist(){
var models=document.getElementById("select2");
while(models.childNodes.length>0){
models.removeChild(models.childNodes[0]);
}
}
function addOption(){
clearlist();
createXMLHttp();
var xmlDoc=xmlhttp.responseXML;
alert(xmlDoc);
var results=xmlDoc.getElementsByTagName("option");
for(var i=0;i<results.length;i++){
var xValue=results[i].childNodes[0].firstChild.nodeValue;
var xText=results[i].childNodes[1].firstChild.nodeValue;
var option=new Option(xText,xValue);
models.appendChild(option);
}
}
</script>
</head>
<body>
<form action="#" name="form1">
<select name="select1" onchange="getLevel2();">
<option value="0">
请选择一级目录
</option>
<%
List<Info> list = InfoDao.getFirst();
for (Info info : list) {
request.setAttribute("info", info);
%>
<option value="${info.id }">
${info.name }
</option>
<%
}
%>
</select>
<select name="select2">
<option value="0">
请选择二级目录
</option>
</select>
</form>
<br>
</body>
</html>
action代码
public class InfoAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
String id=request.getParameter("id");
Info info1=InfoDao.getInfo(id);
List<Info> list=(ArrayList<Info>)InfoDao.getNext(info1);
String xml_start="<?xml version=\"1.0\" encoding=\"UTF-8\"?><selects>";
String xml_end="</selects>";
String xml="";
for(Info info : list){
xml+="<option value='"+info.getId()+"'>'"+info.getName()+"'</option>";
}
String last_xml=xml_start+ xml+ xml_end;
try {
response.getWriter().write(last_xml);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(last_xml);
return mapping.findForward("ok");
}
}为什么js中addOption()在callback()中调用不起作用啊?求高手指导
分享到:
相关推荐
在这个“ajax+struts2.0+jsp下拉列表级联”的示例中,我们将探讨如何利用这三个技术实现这种功能。 首先,AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页...
Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单
以上就是使用Struts2实现select级联选择的基本流程。不连接数据库的情况,数据可以直接在Action中初始化。在实际项目中,数据通常从数据库中获取,因此级联Action需要根据用户选择的省份查询数据库并返回相应城市的...
在Struts2中实现级联菜单是一项常见的需求,通常用于构建复杂的下拉选择框,使得用户能够逐级选择相关选项。级联菜单在数据表关联或者层级结构的展示中非常实用,例如地区选择、部门分类等。 首先,我们需要理解...
在提供的压缩包文件"Struts级联doubleselect"中,应该包含了实现上述功能的Action类、JSP页面、配置文件以及可能的模型对象。你可以直接导入到你的项目中,进行测试和学习。通过这个实例,你可以深入了解Struts2的...
在此,我们将深入探讨Ajax、Spring、Hibernate和Struts2这四个关键技术以及它们在实现级联查询中的作用。 Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页...
在Struts2中实现级联联动菜单,我们需要以下几个关键步骤: 1. **模型设计**: - 首先,定义菜单的数据模型,通常包括ID、名称和父ID等字段。这些数据可能存储在数据库中,通过服务层接口获取。 - 创建一个实体类...
本话题主要关注如何利用Ajax和Struts2来实现级联选择框的功能,这是一种常见的需求,特别是在处理关联数据时,如地区、城市、省份等具有层次关系的数据。 级联选择框是一种交互式的UI元素,用户在选择一个选项后,...
综上所述,"ajax_struts_jquery_json级联菜单"的实现涉及了前端和后端的协同工作。前端利用jQuery的AJAX功能发送请求,处理JSON响应并更新DOM;后端则用Struts处理请求,查询数据库并返回JSON数据。这种组合提供了...
以上就是Struts框架实现下拉框多级联动的关键步骤和涉及的技术点。在实际开发中,你还需要结合具体业务需求和项目规范进行调整和优化。在提供的文件列表中,`src`目录可能包含了Action类和其他相关Java源代码,`...
本项目"struts+hibernate+ajax级联菜单"结合了这三者,旨在实现一种交互性更强的前端菜单功能。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它主要用于控制应用程序的流程,处理...
同时,Struts2可以配合Ajax实现部分页面的异步更新,如在选择省份后动态加载城市列表。 3. **Hibernate框架**: Hibernate是一个对象关系映射(ORM)框架,简化了数据库操作。在这个登录系统中,Hibernate可能用于...
综上所述,《精通Java Web整合开发(Jsp+Ajax+Struts+Hibernate)(第2版)》这本书主要介绍了如何使用JSP、Ajax、Struts、Hibernate以及Spring等技术进行Web应用的开发,涵盖了这些技术的基本概念、核心功能及实际应用...
struts2+jsp+json+javascript实现的三级下拉菜单,没有service和dao层,数据是虚拟的。需要的欢迎下载。项目直接导入myeclipse就可以使用。访问路径localhost:8080/ajax_day02_hw/proviencecityarea.jsp
**jQuery实现的多级级联下拉...总结,这个项目展示了如何利用jQuery与Struts1.2框架协同工作,实现动态的多级级联下拉列表。理解并熟练掌握这一技术,有助于提升Web应用的用户体验,使用户能够更方便地进行数据选择。
在Struts2中实现三级级联,我们需要考虑以下几个关键知识点: 1. **配置文件**:Struts2的核心在于它的配置,包括`struts.xml`。在这个文件中,你需要定义Action类和结果类型,以便处理HTTP请求并返回相应的响应。...
总的来说,实现“Struts2+Hibernate写的下拉菜单级联两级分类”需要对这两个框架有深入的理解,同时也涉及到前端交互和数据库操作。这是一个典型的前后端协作的例子,展示了如何利用Java Web技术解决实际问题。在...
文档描述了通过Ajax和Json实现级联菜单的基本思路: - 首先在HTML中定义两个下拉框,一个是主菜单,另一个是子菜单。 - 当主菜单(第一个下拉框)的选项改变时,触发一个函数`doChange`。 - 函数通过Ajax调用...
在这个项目中,Struts2可能作为控制器,协调Ext与Spring之间的通信,实现级联分页的请求处理和视图更新。 Spring框架是Java企业级应用开发的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,极大地...
在IT行业中,构建高效、动态的Web应用是关键任务之一,而"ajax+jQuery+ssh+oracle级联实例"提供了一个具体的实现方案。这个实例涵盖了前端到后端的关键技术,包括异步数据交互(Ajax)、JavaScript库(jQuery)、...