您的位置:首页 > 其它

Ajax学习笔记-三级联动

2014-10-09 22:06 190 查看



三个实体类
Location.java
public class Location {
private Integer location_id;
private String city;
//...
}
Department.java
public class Department {
private Integer department_id;
private String departmentName;
private Integer location_id;
//...
}
Employee.java
public class Employee {
private Integer employeeId;
private String lastName;
private String email;
private double salary;
private Integer department_id;
//...
}
WebContent下的emplooyes.jsp中只有一行代码,跳转到servlet
<%
response.sendRedirect("EmployeeServlet?method=listLocations");
%>
EmployeeServlet.java
public class EmployeeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String methodName = request.getParameter("method");
try {
Method method = getClass().getDeclaredMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
method.invoke(this, request, response);
} catch (Exception e) {
e.printStackTrace();
}
}

protected void listLocations(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection connection = DBManager.getConnection();
String sql = "select * from location";
List<Location>locations = new ArrayList<Location>();
Statement statement = null;
ResultSet resultSet = null;
Location location = null;
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
location = new Location();
location.setCity(resultSet.getString("city"));
location.setLocation_id(resultSet.getInt("location_id"));
locations.add(location);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBManager.close(resultSet, statement, connection);
}
request.setAttribute("locations", locations);
request.getRequestDispatcher("/WEB-INF/pages/employees.jsp").forward(request, response);
}

protected void listDepartments(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
int locationId = Integer.parseInt(request.getParameter("locationId"));
String sql = "select * from department where location_id = " + locationId;
Connection connection = DBManager.getConnection();
List<Department>departments = new ArrayList<Department>();
Department department = null;
ResultSet resultSet = null;
Statement statement = null;
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
department = new Department();
department.setDepartmentName(resultSet.getString("departmentName"));
department.setDepartment_id(resultSet.getInt("department_id"));
department.setLocation_id(resultSet.getInt("location_id"));
departments.add(department);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBManager.close(resultSet, statement, connection);
}
ObjectMapper mapper = new ObjectMapper();
String result = mapper.writeValueAsString(departments);
System.out.println(result);
response.setContentType("text/javascript");
response.setCharacterEncoding("UTF-8");
response.getWriter().print(result);
}

protected void listEmployees(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
int department_id = Integer.parseInt(request.getParameter("department_id"));
String sql = "select * from employee where department_id = " + department_id;
Connection connection = DBManager.getConnection();
Statement statement = null;
ResultSet resultSet = null;
List<Employee>employees = new ArrayList<Employee>();
Employee employee = null;
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
employee = new Employee();
employee.setDepartment_id(resultSet.getInt("department_id"));
employee.setEmail(resultSet.getString("email"));
employee.setEmployeeId(resultSet.getInt("employee_id"));
employee.setLastName(resultSet.getString("last_name"));
employee.setSalary(resultSet.getDouble("salary"));
employees.add(employee);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBManager.close(resultSet, statement, connection);
}
ObjectMapper mapper = new ObjectMapper();
String result = mapper.writeValueAsString(employees);
System.out.println(result);
response.setContentType("text/javascript");
response.setCharacterEncoding("UTF-8");
response.getWriter().print(result);
}

protected void listEmployeeInfo(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
int employeeId = Integer.parseInt(request.getParameter("employeeId"));
String sql = "select * from employee where employee_id = " + employeeId;
System.err.println(sql);
Connection connection = DBManager.getConnection();
Statement statement = null;
ResultSet resultSet = null;
Employee employee = null;
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
if (resultSet.next()) {
employee = new Employee();
employee.setDepartment_id(resultSet.getInt("department_id"));
employee.setEmail(resultSet.getString("email"));
employee.setEmployeeId(resultSet.getInt("employee_id"));
employee.setLastName(resultSet.getString("last_name"));
employee.setSalary(resultSet.getDouble("salary"));
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBManager.close(resultSet, statement, connection);
}
ObjectMapper mapper = new ObjectMapper();
String result = mapper.writeValueAsString(employee);
System.out.println(result);
response.setContentType("text/javascript");
response.setCharacterEncoding("UTF-8");
response.getWriter().print(result);
}

public static void main(String[] args) {
System.out.println(DBManager.getConnection());
}
}
/WEB-INF/pages/employees.jsp浏览器不可达,只能通过servlet跳转到该页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/jquery.blockUI.js"></script>
<script type="text/javascript">
$(function(){
$(document).ajaxStart(function(){
//使用blockUI。ajax请求发出时执行
$.blockUI({
message:$('#loading'),
css:{
top:($(window).height() - 400)/2 + 'px',
left:($(window).width() - 400)/2 + 'px',
width:'400px'
},
overlayCSS:{backgroundColor:'#00f'}
})
}).ajaxStop($.unblockUI);

$("#city").change(function(){
$("#department option:not(:first)").remove();
var location_id = $(this).val();
if(location_id != ""){
var url = "EmployeeServlet?method=listDepartments";
var args = {"locationId":location_id, "time":new Date()};

$.getJSON(url, args, function(data){
if(data.length == 0){
alert("当前城市没有部门");
}else{
for(var i = 0; i < data.length; i++){
var deptName = data[i].departmentName;
var deptId = data[i].department_id;
//alert(deptName);
$("#department").append("<option value='"+deptId+"'>"+deptName+"</option>");
}
}
});
}
});
$("#department").change(function(){
$("#employee option:not(:first)").remove();
var department_id = $(this).val();
if(department_id != ""){
var url = "EmployeeServlet?method=listEmployees";
var args = {"department_id":department_id, "time":new Date()};
$.getJSON(url, args, function(data){
if(data.length == 0){
alert("当前部门没有员工");
}else{
for(var i = 0; i < data.length; i ++){
var lastName = data[i].lastName;
var email = data[i].email;
var salary = data[i].salary;
var employeeId = data[i].employeeId;
$("#employee").append("<option value='"+employeeId+"'>"+lastName+"</option>");
}
}
});
}
});
$("#employee").change(function(){
var employeeId = $(this).val();
if(employeeId != ""){
var url = "EmployeeServlet?method=listEmployeeInfo";
var args = {"employeeId":employeeId, "time":new Date()};
$.getJSON(url, args, function(data){
if(data.length == 0){
alert("数据丢失");
}else{
$("#employee_id").text(data.employeeId);
$("#last_name").text(data.lastName);
$("#email").text(data.email);
$("#salary").text(data.salary);
}
});
}
//}
});
})
</script>
</head>
<body>
<img alt="" id="loading" src="${pageContext.request.contextPath}/images/loading.gif" style="display: none">
City:
<select id="city">
<option value="">请选择...</option>
<c:forEach items="${locations}" var="location">
<option value="${location.location_id}">${location.city}</option>
</c:forEach>
</select> Department:
<select id="department">
<option value="">请选择...</option>
</select> Employee:
<select id="employee">
<option value="">请选择...</option>

</select>
<br /> 员工编号:
<span id="employee_id"></span>
<br /> 姓名:
<span id="last_name"></span>
<br /> email:
<span id="email"></span>
<br /> 薪水:
<span id="salary"></span>
<br />
</body>
</html>
源码 http://yunpan.cn/cgephkTV2Tcmh (提取码:2492)
本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1561911
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: