此作品实现用ajax开发可配级联地刷新下拉框.
1.开发环境:eclipse+tomcat+mysql
2.工程名:ajax_select
3.主要涉及文件及内容:
-----页面------------
index.jsp
------工程配置------------
web.xml
------类文件------------
AjaxServlet.java
package com.ajax;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
public class AjaxServlet extends HttpServlet{
private static final String CONTENT_TYPE="text/xml; charset=gb2312";
public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{
String myid = request.getParameter("id");
String sql = "select id,pid,name,mylevel from region where pid = '"+myid+"'";
Connection conn = null;
try{
ArrayList list = new ArrayList();
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("No Context!");
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/ajax_select");
if (ds != null) {
conn = ds.getConnection();
if(conn != null) {
RegionBean rb = null;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
StringBuffer sb=new StringBuffer("<regions></regions>");
while(rs.next()) {
sb.append("<region></region>");
sb.append("<id></id>").append(rs.getString(1)).append("");
sb.append("
<pid></pid>
").append(rs.getString(2)).append("");
sb.append("<name></name>").append(rs.getString(3)).append("");
sb.append("<level></level>").append(rs.getString(4)).append("");
sb.append("");
}
sb.append("");
System.out.println(sb.toString());
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
out.write(sb.toString());
out.close();
}
}
}catch(Exception e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{
doGet(request, response);
}
}
AjaxTest.java
package com.ajax;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
import java.util.ArrayList;
public class AjaxTest {
public ArrayList init() {
String id = "";
String pid = "";
String name = "";
ArrayList list = null;
Connection conn = null;
try{
list = new ArrayList();
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Boom - No Context");
DataSource ds =
(DataSource)ctx.lookup(
"java:comp/env/jdbc/ajax_select");
if (ds != null) {
conn = ds.getConnection();
if(conn != null) {
RegionBean rb = null;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select id,pid,name,mylevel from region where pid = ''");
while(rs.next()) {
id =rs.getString(1);
pid =rs.getString(2);
name =rs.getString(3);
rb = new RegionBean();
rb.setId(id);
rb.setPid(pid);
rb.setName(name);
list.add(rb);
}
}
}
}catch(Exception e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
}
}
RegionBean.java
package com.ajax;
public class RegionBean {
String id = "";
String pid = "";
String name = "";
int level;
public String getId() { return id; }
public String getPid() { return pid;}
public String getName() { return name;}
public int getLevel(){return level;}
public void setId(String id){
this.id=id;
}
public void setPid(String pid){
this.pid=pid;
}
public void setName(String name){
this.name=name;
}
public void setLevel(int level){
this.level = level;
}
}
------sql语句
drop table if exists region;
create table region(
id varchar(30) not null,
pid varchar(30) null,
name varchar(50) null,
mylevel int not null,
primary key (id)
)
type = InnoDB;
insert into region(id,pid,name,mylevel) values('a01','','state1',0);
insert into region(id,pid,name,mylevel) values('a02','','state2',0);
insert into region(id,pid,name,mylevel) values('a03','','state3',0);
insert into region(id,pid,name,mylevel) values('a04','','state4',0);
insert into region(id,pid,name,mylevel) values('a05','','state5',0);
insert into region(id,pid,name,mylevel) values('a01b01','a01','province1',1);
insert into region(id,pid,name,mylevel) values('a01b02','a01','province2',1);
insert into region(id,pid,name,mylevel) values('a01b03','a01','province3',1);
insert into region(id,pid,name,mylevel) values('a01b04','a01','province4',1);
insert into region(id,pid,name,mylevel) values('a02b01','a02','province21',1);
insert into region(id,pid,name,mylevel) values('a02b02','a02','province22',1);
insert into region(id,pid,name,mylevel) values('a02b03','a02','province23',1);
insert into region(id,pid,name,mylevel) values('a02b04','a02','province24',1);
insert into region(id,pid,name,mylevel) values('a03b01','a03','province31',1);
insert into region(id,pid,name,mylevel) values('a03b02','a03','province32',1);
insert into region(id,pid,name,mylevel) values('a03b03','a03','province33',1);
insert into region(id,pid,name,mylevel) values('a03b04','a03','province34',1);
insert into region(id,pid,name,mylevel) values('a01b01c01','a01b01','city11',2);
insert into region(id,pid,name,mylevel) values('a01b01c02','a01b01','city12',2);
insert into region(id,pid,name,mylevel) values('a01b01c03','a01b01','city13',2);
insert into region(id,pid,name,mylevel) values('a01b01c04','a01b01','city14',2);
insert into region(id,pid,name,mylevel) values('a03b01c01','a03b01','city31',2);
insert into region(id,pid,name,mylevel) values('a03b01c02','a03b01','city32',2);
insert into region(id,pid,name,mylevel) values('a03b01c03','a03b01','city33',2);
insert into region(id,pid,name,mylevel) values('a03b01c04','a03b01','city34',2);
insert into region(id,pid,name,mylevel) values('a01b01c01d01','a01b01c01','region1',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d02','a01b01c01','region2',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d03','a01b01c01','region3',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d04','a01b01c01','region4',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d01','a03b01c02','region21',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d02','a03b01c02','region22',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d03','a03b01c02','region23',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d04','a03b01c02','region24',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d01','a01b01c03','region31',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d02','a01b01c03','region32',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d03','a01b01c03','region33',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d04','a01b01c03','region34',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d01','a03b01c03','region31',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d02','a03b01c03','region32',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d03','a03b01c03','region33',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d04','a03b01c03','region34',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d01','a03b01c04','county41',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d02','a03b01c04','county42',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d03','a03b01c04','county43',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d04','a03b01c04','county44',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e01','a01b01c01d01','town1',4);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02','a01b01c01d01','town2',4);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e03','a01b01c01d01','town3',4);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e04','a01b01c01d01','town4',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e01','a03b01c02d04','town21',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e02','a03b01c02d04','town22',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e03','a03b01c02d04','town23',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04','a03b01c02d04','town24',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01','a03b01c04d04','town41',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e02','a03b01c04d04','town42',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e03','a03b01c04d04','town43',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e04','a03b01c04d04','town44',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01','a03b01c04d04e01','village1',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f02','a03b01c04d04e01','village2',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f03','a03b01c04d04e01','village3',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f04','a03b01c04d04e01','village4',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f01','a01b01c01d01e02','village21',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f02','a01b01c01d01e02','village22',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f03','a01b01c01d01e02','village23',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f04','a01b01c01d01e02','village24',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f01','a03b01c02d04e04','village41',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f02','a03b01c02d04e04','village42',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f03','a03b01c02d04e04','village43',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f04','a03b01c02d04e04','village44',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g01','a03b01c04d04e01f01','smallvillage1',6);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g02','a03b01c04d04e01f01','smallvillage2',6);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g03','a03b01c04d04e01f01','smallvillage3',6);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g04','a03b01c04d04e01f01','smallvillage4',6);
------Tomcat 的service.xml
请在%Tomcat_Home%/conf/service.xml文件里参照附件里的service.xml修改创建虚似路径
<!---->
<parameter></parameter>
<!---->
-------------------------------------------------------------------------------------------------------
工程原稿在附件里,详细见附件
- ajax_select.rar (16.1 KB)
- 描述: 本例默认是10级下拉框,如果要调整,请在index.jsp里的 int maxLevel = 10 进行配置.
- 下载次数: 46
分享到:
相关推荐
layui的插件效果,优化基础layui的原装组件的效果。 layui 是一款采用自身模块规范...其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。
**Ajax 实现可配置无刷新级联下拉框** 在 Web 开发中,为了提供用户友好的交互体验,级联下拉框(Cascading Dropdown)是一个常见的需求。级联下拉框允许用户在一个下拉框中选择一个选项后,根据所选的选项动态更新...
在ASP.Net开发中,"省市地区 局部刷新 级联下拉框"是一个常见的需求,它涉及到前端用户界面的交互以及后端数据的动态加载。局部刷新技术可以提高用户体验,因为它仅更新页面的特定部分,而不是整个页面,这在处理...
"ajax三级级联无刷新"是指在网页上使用Ajax技术实现省市区三级联动的效果,用户在选择一级区域(如省份)时,无需刷新整个页面,二级区域(如城市)会自动更新;接着选择二级区域,三级区域(如区县)也会随之动态...
在创建级联下拉框时,通常需要以下步骤: 1. **服务器端准备**: - 配置DWR:在项目中引入DWR库,配置dwr.xml文件,声明允许客户端调用的Java方法。 - 编写Java服务:根据数据库结构(例如Ms SQL 2005中的表和...
级联下拉框是一种常见的用户界面元素,常用于在多个相关选项之间建立关联,例如国家、省份、城市的三级选择。这种交互方式可以帮助用户快速浏览和选择层级结构中的数据,而无需打开多个独立的下拉菜单。在网页开发或...
"好用简单的可编辑级联下拉框"就是一个旨在提升用户体验的组件,它将传统的静态下拉框与级联选择功能相结合,并引入了编辑能力,使得用户在选择过程中能够更加灵活和高效。 首先,我们要理解什么是“可编辑下拉框”...
在Android开发中,有时...总之,实现Android城市级联下拉框(自定义Spinner)需要对Spinner的基本使用、事件监听、数据更新以及界面定制有深入了解。通过不断实践和优化,我们可以创建出用户体验优秀的级联选择组件。
级联下拉框是一种常见的UI组件,它允许用户在一个下拉框的选择基础上动态加载并显示另一个相关的下拉框,这种联动效果在数据筛选、地区选择等场景中非常常见。 1. HTML基础: HTML(HyperText Markup Language)...
**无刷新级联更新**则是在选择一个下拉框后,通过Ajax调用后台接口,获取与当前选择相关的数据,然后在前端使用JavaScript动态更新另一个下拉框的选项。这种方式使得用户能够在选择过程中快速看到变化,提高了应用的...
要实现级联下拉框,首先需要对Angular有一个基本的了解,包括Angular模块化的基本单位@Component、@NgModule等,以及模板语法和数据绑定的实现。 ### 下拉框级联逻辑实现 级联下拉框的核心是根据前一个下拉框的...
级联下拉框(Cascading Dropdown)是一种常见的前端交互设计,它允许用户在选择一个选项后,根据所选选项动态加载并显示下一个下拉框的内容。这种效果在多级分类、地区选择、产品配置等场景中十分常见。在本教程中,...
在IT领域,级联下拉框(Cascading Dropdown)是一种常见的用户界面设计,它用于在两个或更多下拉框之间建立关联关系。在这种设计中,一个下拉框的选项会根据用户在另一个下拉框中的选择动态更新。这种功能在数据筛选...
1. **HTML结构**:设置两个或多个相关的`<select>`元素,它们将作为级联下拉框。每个`<select>`都有一个唯一的ID,用于JavaScript操作。 2. **jQuery绑定事件**:我们需要监听第一个下拉框的`change`事件。当用户在...
在Excel中,级联下拉框是一种非常实用的功能,它允许用户在选择一个选项后,根据该选项自动显示相关的次级选项。这种交互方式在数据输入时能够保持数据的一致性和准确性,尤其适用于多级分类的数据管理。在本教程中...
asp读取access数据库数据,在html页面动态生成多级级联的下拉框,摆脱静态级联下拉框数据变更烦恼。
AJAX级联下拉框是一种常见的前端交互设计,它利用Ajax技术实现在用户选择一个下拉选项时,动态地更新另一个相关联的下拉框内容。这种功能在数据关联、筛选和表单填写中非常常见,例如省份和城市的选择,类别和子类别...