jquery+dwr二级联动

来源:互联网 发布:多空资金流指标源码 编辑:程序博客网 时间:2024/04/29 09:51
package com.dwr2;import java.util.ArrayList;import java.util.List;import java.sql.*;import net.sf.json.*;public class Citybean {private Connection ct=null;private PreparedStatement ps=null;private ResultSet rs=null;public List allprvinces(){List list=new ArrayList();try{ct=Conn.getinstance();ps=ct.prepareStatement("select * from prvinces");rs=ps.executeQuery();Prvinces p=null;while(rs.next()){p=new Prvinces();p.setId(rs.getInt(1));p.setPname(rs.getString(2));list.add(p);}}catch(Exception e){e.printStackTrace();}finally{DBclose.close(ct, ps, rs);}return list;}public List allCity(){List all=new ArrayList();try{ct=Conn.getinstance();ps=ct.prepareStatement("select cityname from prvinces,city where prvinces.id=city.id and pname='四川'");rs=ps.executeQuery();City c=null;while(rs.next()){c=new City();c.setCityname(rs.getString(1));all.add(c);}}catch(Exception e){e.printStackTrace();}finally{DBclose.close(ct, ps, rs);}return all;}public List selectCity(String pname){List li=new ArrayList();try{ct=Conn.getinstance();ps=ct.prepareStatement("select cityname from prvinces,city where prvinces.id=city.id and  pname=?");ps.setString(1, pname);rs=ps.executeQuery();City c=null;while(rs.next()){c=new City();c.setCityname(rs.getString(1));li.add(c);}}catch(Exception e){e.printStackTrace();}finally{DBclose.close(ct, ps, rs);}return li;}public String all(String pname){List li=this.selectCity(pname);JSONArray ja=JSONArray.fromObject(li);return ja.toString();}}
dwr.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd" ><!-- <!DOCTYPE dwr SYSTEM "dwr20.dtd" > --><dwr>   <allow>   <create creator="new" javascript="test">   <param name="class" value="com.dwr2.Citybean"/>   <include method="all"/>      </create>      </allow></dwr>

页面

<%@ page language="java" import="java.util.*,com.dwr2.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";ArrayList list=(ArrayList)request.getAttribute("list");ArrayList all=(ArrayList)request.getAttribute("all");%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>  <script type='text/javascript' src='/dwr/dwr/interface/test.js'></script>   <script type='text/javascript' src='/dwr/dwr/engine.js'></script> <script type='text/javascript' src='/dwr/dwr/util.js'></script> <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>    <base href="<%=basePath%>">        <title>My JSP 'First.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">-->  </head>    <body>   <select name="pname" id="prvince" onchange="show();">   <%for(int i=0;i<list.size();i++){    Prvinces p=(Prvinces)list.get(i);   %>  <option><%=p.getPname() %></option> <%} %>   </select>   <select name="cityname" id="city">    <option>请选择城市</option>   <%for(int j=0;j<all.size();j++){   City c=(City)all.get(j);    %>      <option><%=c.getCityname() %></option>   <%} %>   </select>  </body>   <script type="text/javascript"> function show(){ var prvince=$("#prvince"); var city=$("#city"); city.empty(); var pname=document.all("pname").value; test.all(pname,call)  } function call(data){ if(data){ var c=eval(data); for(var k=0;k<c.length;k++){ $("#city").append("<option>"+c[k].cityname+"</option>"); } } } </script></html>