我原先写过1个拿prototype.js写过1个 可惜和htmlarea发生冲突 没办法 只有换了拿DWR写了个
先看JSP
<%@ page language="java" pageEncoding="utf-8"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html lang="true"> <head> <title>course.jsp</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"> --> <script type="text/javascript" src="<%=basePath%>dwr/util.js"></script> <script type="text/javascript" src="<%=basePath%>dwr/engine.js"></script> <script type="text/javascript" src="<%=basePath%>dwr/interface/ValidatName.js"></script> <script type="text/javascript"> function sendRequest(selectValue){ ValidatName.ExamQuestionCourse(selectValue,callBackValidatName); } function callBackValidatName(data){ var json=data; var selectObj = document.getElementById("course_id"); selectObj.options.length = 1; for(var i=0; i<json.length; i++){ selectObj[i+1] = new Option(json[i].course_name,json[i].id); } } function sendRequest1(selectValue1){ ValidatName.ExamQuestionContent(selectValue1,callBackValidatName1); } function callBackValidatName1(data1){ var json1 = data1; var selectObj1 = document.getElementById("relation_course_id"); selectObj1.options.length = 1; for(var i=0; i<json1.length; i++){ selectObj1[i+1] = new Option(json1[i].content_title,json1[i].id); } } </script> </head> <body> <html:form action="/ajax.html?method=prep"> <table> <tr> <td width="150" height="26" align="left" class="inputitemname">请选择课件</td> <td width="350" align="left" class="tablebody"> 课程类型: <html:select property="course_type_id" onchange="javascript:sendRequest(this.value);act='';" styleId="id1"> <html:option value="0">请选择</html:option> <html:options collection="list" property="id" labelProperty="course_type_name"/> </html:select><br> 课程名称: <html:select property="course_id" onchange="javascript:sendRequest1(this.value);act=''" styleId="course_id" > <html:option value="0">请选择</html:option> </html:select><br> 课程内容: <html:select property="relation_course_id" styleId="relation_course_id"> <html:option value="0">请选择</html:option> </html:select> </td> </tr> </html:form> </table> </body> </html:html>
因为是拿struts写的action就不写出来了 里边就是去顶级数据
在看配置
dwr.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <create javascript="ValidatName" creator="new"> <param name="class" value="com.hcwy.service.DwrService"></param> </create> <convert converter="bean" match="com.hcwy.bean.TrainingCourse"> <param name="include" value="id,course_name" /> </convert> <convert converter="bean" match="com.hcwy.bean.TrainingContent"> <param name="include" value="id,content_title" /> </convert> </allow> </dwr>
呵呵因为第1次写DWR 所以里边转数据我原先以为要用JSON 结果他里边自动给你转好了 只用写下配置就行了
最后看下SERVICE
package com.hcwy.service; import java.util.ArrayList; import java.util.HashMap; import org.json.JSONArray; import org.json.JSONObject; import com.hcwy.bean.TrainingContent; import com.hcwy.bean.TrainingCourse; import com.hcwy.dao.DAO; public class DwrService { public ArrayList ExamQuestionCourse(String id){ DAO dao=new DAO(); ArrayList list=dao.viewCourse(id); // JSONArray jsonArray = new JSONArray(); // for(int i = 0; i < list.size(); i++ ){ // TrainingCourse cc = (TrainingCourse)list.get(i); // HashMap map=cc.toHashMap(); // JSONObject jsonObject = new JSONObject(map); // jsonArray.add(jsonObject); // } dao.close(); return list; } public ArrayList ExamQuestionContent(String id){ DAO dao=new DAO(); ArrayList list=dao.viewContent(id); // JSONArray jsonArray = new JSONArray(); // for(int i = 0; i < list.size(); i++ ){ // TrainingContent cc=(TrainingContent)list.get(i); // HashMap map=cc.toHashMap(); // JSONObject jsonObject = new JSONObject(map); // jsonArray.add(jsonObject); // } dao.close(); return list; } }
DAO里就是通过ID取数据 DAO也不想要了
呵呵老规矩DEMO项目 如果要的朋友 留下油箱我发给你门