我原先写过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" οnchange="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" οnchange="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项目 如果要的朋友 留下油箱我发给你门