JSON 向页面传输对象
2013-03-27 15:09 功夫猫 阅读(360) 评论(0) 收藏 举报1.js
$(document).ready(function () { $.getJSON("./ShowKinds.do?pid=0",null,callback); }); function callback(data) { var objSelect = $(".BK"); //注册change事件。显示小类信息。 objSelect.change(function () { var pid = $(this).val(); $.getJSON("./ShowKinds.do?pid="+pid,null,smallback); }); for (var i = 0;i < data.length;i++) { //创建<option>标签,将循环的值加到标签内; var objOption = $("<option>"); var str = data[i]["name"]; var strVal = data[i]["id"]; objOption.html(str); objOption.val(strVal); //将<option>标签添加到<select class="BK">标签内部; objOption.appendTo(objSelect); } //一开始刷新页面的时候,小类不为空: $.getJSON("./ShowKinds.do?pid=1",null,smallback); } //显示小类信息。 function smallback (data) { var objSelect = $(".SK"); objSelect.empty(); for (var i = 0;i < data.length;i++) { //创建<option>标签,将循环的值加到标签内; var objOption = $("<option>"); objOption.html(data[i]["name"]); objOption.val(data[i]["id"]); //将<option>标签添加到<select class="SK">标签内部; objOption.appendTo(objSelect); } }
2.ShowKindsServlet
package com.kebin.Servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.kebin.pojo.Kinds; import com.kebin.service.impl.KindsServiceImpl; public class ShowKindsServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); int pid = Integer.parseInt(request.getParameter("pid")); List<Kinds> kinds = KindsServiceImpl.getInstance().showKinds(pid); PrintWriter pw = response.getWriter(); StringBuffer sb = new StringBuffer(); //for循环拼接字符串 [{id:0,name:"服装"},{id:1,name:"家电"}] sb.append("["); for (int i = 0;i < kinds.size();i++) { sb.append("{id:").append(kinds.get(i).getId()).append(",name:\"").append(kinds.get(i).getName()).append("\"},"); } //将字符串最后多余的逗号去掉,加上 ] ; sb.deleteCharAt(sb.length()-1); sb.append("]"); pw.print(sb); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
3.
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script type="text/javascript" src="./JS/jquery.js"></script> <script type="text/javascript" src="./JS/myjquery.js"></script> <!-- <link rel="stylesheet" type="text/css" href="./CSS/aa.css"> --> </head> <body> <form> 大类:<select class="BK"></select>小类:<select class="SK"></select> </form> </body> </html>
KindsServiceImpl.java
package com.kebin.service.impl; import java.util.List; import com.kebin.dao.KindsDao; import com.kebin.dao.impl.KindsDao4MySqlImpl; import com.kebin.pojo.Kinds; import com.kebin.service.KindsService; public class KindsServiceImpl implements KindsService { private static void KindsServiceImpl(){} private static KindsServiceImpl kindsService = new KindsServiceImpl(); public static KindsServiceImpl getInstance() { return kindsService; } private static KindsDao kindsDao = new KindsDao4MySqlImpl(); public List<Kinds> showKinds(int pid) { return kindsDao.getKinds(pid); } }
a,sql
create table t_kinds( id int auto_increment, name varchar(12), pid int, primary key(id) ); insert into t_kinds values(null,'服装',0); insert into t_kinds values(null,'家电',0); insert into t_kinds values(null,'食品',0); insert into t_kinds values(null,'男上衣',1); insert into t_kinds values(null,'女上衣',1); insert into t_kinds values(null,'裤子',1); insert into t_kinds values(null,'电脑',2); insert into t_kinds values(null,'洗衣机',2); insert into t_kinds values(null,'冰箱',2); insert into t_kinds values(null,'彩电',2); insert into t_kinds values(null,'食品1',3); insert into t_kinds values(null,'食品2',3);
其他的代码就不一一贴出来了。

浙公网安备 33010602011771号