单页面动态生成数据的处理方法
<%@ page language="java" import="java.util.*,com.xaccp.entity.*,com.xaccp.dao.*" pageEncoding="GBK"%>
<html>
<head>
<%
//通过服务器动态产生javascript代码(客户端脚本代码)
StringBuffer sb = new StringBuffer(); //存储大类型的数组
StringBuffer sbm = new StringBuffer(); //存储子类型的数组
sb.append("<SCRIPT LANGUAGE = 'JavaScript'>");
sb.append("\n var big = new Array();");
sb.append("\n var small = new Array();");
TypeListDao typeDao=new TypeListDao();
Map mapType=typeDao.selectMap();
List typeList=(List)mapType.get(new Integer(0)); //获得存储父类别的集合
for (int i = 0; i < typeList.size(); i++) {
TypeList mainType=(TypeList) typeList.get(i);
sb.append(" \n big["+mainType.getTypeID()+"]=['"+mainType.getTypeName()+"'];");
//out.println(mainType.getTypeID()+":"+ mainType.getTypeName());
//根据父类别的类别细信息来获得相应父类别下的子类别集合
List sonListType=(List)mapType.get(new Integer(mainType.getTypeID()));
if (sonListType!=null) {//判断:如果相应的父类型下有子类型再去循环遍历。以免出现空指定异常
sb.append("\n small["+mainType.getTypeID()+"]=[");
for (int j = 0; j < sonListType.size(); j++) {
TypeList sonType=(TypeList)sonListType.get(j);
sb.append("'"+sonType.getTypeID()+"-"+sonType.getTypeName()+"'");
if(j<sonListType.size()-1)
sb.append(",");
}
sb.append("];\n");
}
}
sb.append("</SCRIPT>\n");
%>
<%=sb.toString() %>
<script type="text/javascript">
//为类别下拉框添加选项
function initBig()
{
var selBig = document.getElementById("selBig");
selBig.options.add(new Option("==请选择大类=="),0);
for(i in big)
{
var op = new Option(big[i],i);
selBig.options.add(op);
}
}
//为栏目下拉框添加选项
function fillSmall(bId)
{
document.getElementById("selSmall").options.length=0;//清空原下拉列表中的项
if(small.length>bId)
{
var selSmall = document.getElementById("selSmall");
for(var i =0;i<small[bId].length;i++)
{
var name =small[bId][i].substring(small[bId][i].indexOf('-')+1);
var id =small[bId][i].substring(0,small[bId][i].indexOf('-'))
selSmall.options.add(new Option(name,id));
}
}
else
{
//提示当前类别中无子栏目,
if(confirm("请添加当前大类中的小类 !\r\n要添加吗?"))
{
//location.href="#";在这里进行连接,链接到添加类别页面
}
}
}
</script>
</head>
<body onLoad="initBig()">
<select id="selBig" onChange="fillSmall(this.value)">
</select>
<select id="selSmall">
</select>
</body>
</html>
分享到:
相关推荐
1. **数据源管理**:实际应用中,通常需要从前端或者数据库获取动态数据,而不是像示例中那样硬编码。 2. **错误处理**:应考虑到网络延迟或数据异常等情况下的错误处理机制。 3. **用户体验优化**:可以考虑增加...
在网页开发中,级联菜单(Cascading Menu)是一种常见的交互元素,它通常用于网站导航,能够有效地展示多层次的结构信息。本话题主要探讨如何使用JavaScript(js)结合JavaServer Pages(jsp)标签来实现这样的功能...
综上所述,实现Java和JSP中的二级级联菜单涉及数据库设计、后端处理、前端展示等多个方面,需要理解MVC架构、Java与数据库交互、JSP标签库的使用以及前端基本的HTML和CSS知识。通过熟练掌握这些技能,你可以构建出...
在本示例中,JSP将负责显示页面,包括创建和初始化级联下拉列表,以及处理AJAX回调后的数据更新。 实现步骤大致如下: 1. 创建JSP页面:在JSP中,你需要创建两个或者更多个下拉列表,并绑定AJAX事件监听器。当第一...
通过这个"jsp + servlet 级联菜单"项目,新手可以学习到如何结合使用JSP和Servlet来构建动态的、交互式的Web应用,理解服务器端与客户端的交互机制,以及数据的获取、处理和展示过程。通过练习,不仅可以提升编程...
在本项目"jsp+db的js级联菜单"中,我们看到它利用了Java Server Pages (JSP) 和 JavaScript 技术,并结合数据库来动态生成级联菜单。 JSP是Java的一种视图技术,用于在服务器端生成HTML或其他类型的Web内容。开发者...
标题:“jsp+Java级联菜单” 描述:本文档提供了一个基于jsp和JavaScript实现的级联菜单代码示例,适用于web应用程序中的多级选择菜单。该程序通过前后端结合的方式,实现了动态加载数据并构建菜单的功能。 ### ...
对于级联菜单,JavaScript通常用来控制菜单的展开与折叠,根据用户的选择动态更新显示,并在用户做出选择时触发Ajax请求,将数据无刷新地发送回服务器。 项目中提到的“保存”功能意味着当用户在三级级联菜单中做出...
在本文中,我们将深入探讨如何在JSP(JavaServer Pages)中实现一个基于JavaScript的出生日期三级级联下拉列表。这种功能常用于用户注册、个人信息填写等场景,让用户能够方便地选择他们的出生年、月和日。 首先,...
在本项目中,JSP可能被用来处理用户请求、与数据库交互,以及生成动态响应。 2. **级联效果**:级联通常指的是在Web表单中,两个或多个下拉列表之间存在依赖关系。例如,一个下拉框选择国家,另一个下拉框则根据所...
配置Action的映射,包括主Action(显示初始页面)和级联Action(处理级联选择后的请求)。 ```xml <result name="success">/cascadeSelect.jsp <param name="root">cities ``` 3. **创建...
5. **JavaScript处理响应**:前端JavaScript接收到JSON数据后,解析为JavaScript对象,然后动态插入到DOM中,更新菜单显示。 6. **递归处理**:对于三级级联菜单,这个过程可能需要递归进行,直到所有级别的菜单都...
在Web开发中,JSP(JavaServer Pages)和AJAX...总的来说,“JSP+AJAX三级级联及更多级的实现”是一个典型的前后端协同工作,通过动态交互提升用户体验的实例,展示了Web开发中数据获取和页面更新的灵活性。
标题中的“基于iBatis,ajax从数据库取数的无刷新级联”指的是在Web开发中,使用iBatis作为持久层框架,结合Ajax技术,实现动态从数据库获取数据并更新视图,而无需页面整体刷新,从而提高用户体验。这里涉及的主要...
通过以上步骤,我们可以利用JSP和前端技术实现一个高效的三级级联查询功能,提高用户在选择和过滤信息时的效率。在“三级级联.docx”文件中,可能包含了具体的代码示例和详细步骤,你可以参考这份文档进一步学习和...
- 查询数据库,并将结果转换成适合前端显示的格式(如JSON)。 - 将结果返回给客户端。 5. **具体代码示例**: ```jsp *,java.sql.*" pageEncoding="UTF-8"%> ("UTF-8"); response.setContentType("text/html...
在提供的"省市级联"压缩包文件中,可能包含了实现上述功能的相关源代码,包括Java类、DAO接口、Servlet配置、JSP页面以及可能的数据库脚本。通过阅读和理解这些代码,你可以学习到如何在实际项目中应用JSP和Servlet...
2. **JSP页面**:在JSP页面中,你需要创建两个下拉菜单,一个用于显示省份,另一个用于显示根据所选省份动态加载的城市。省份下拉菜单的选择事件触发一个AJAX请求,这个请求通过JSON获取对应省份的所有城市数据。 3...
3. **配置Hibernate**:配置hibernate.cfg.xml文件,包括数据库连接信息、映射文件等。 4. **编写Action**:在Action类中,根据用户在上一级的选择,查询相应的下级数据。例如,如果选择了国家,就获取该国家的所有...
### 使用jQuery、Ajax、JSP与Servlet实现二级级联菜单 #### 一、项目背景与技术栈概述 本文档将详细介绍如何使用jQuery、Ajax、JSP与Servlet来实现一个简单的二级级联菜单功能。该功能常见于许多Web应用程序中,如...