DWR实现级联 & JSP页面的查询

Problem:

(1) 利用DWR实现三层级联:函数实现,但是无法将js中的object对象转换为用户自定义的对象VideoCateroy

(2)实现JSP页面的查询操作:如何将JS返回的str用于SQL语句

一、利用DWR实现三层级联

1、预期实现结构分析

七年级

---上学期

-------语文

-------数学

-------英语

---下学期

-------语文

-------数学

-------英语

2、编写Java类:getChildCategoryByParentId(int id)


package com.gslsoft.dao;
/*通过父类Id查找子类目*/
@SuppressWarnings("finally")
public List<VideoCategory> getChildCategoryByParentId(int id)
{
String sql="select * from video_category where parentId='"+id+"'";
List<VideoCategory> list=new ArrayList();
VideoCategory Category=null;
try{
CachedRowSet rs = DBConnection.getResultSet(sql);
while(rs.next()) {
Category= new VideoCategory();
Category.setName(rs.getString("name"));
Category.setRemark(rs.getString("remark"));
Category.setLevel(rs.getInt("level"));
Category.setImage(rs.getString("image"));
Category.setCategoryId(rs.getInt("id"));
list.add(Category);
}
rs.close();
} catch (java.sql.SQLException e) {
Logger.log(Logger.ERROR,
"DataRepository_getVideoFileByCategoryId: with CategoryId=" + id);
Logger.log(Logger.ERROR, e.toString());
} finally {
return list;
}
}


本文来自CSDN博客,转载请标明出处:file:///C:/Documents%20and%20Settings/Administrator/桌面/我的文件夹/我下载的学习网页/JSP的那些事儿(4)----DWR实现级联%20%26%20JSP页面的查询%20-%20薛敬明的专栏%20-%20CSDN博客.htm


3、编写WEB-INF/dwr.xml:具体的配置说明在前面一章给出了详细的说明

<?xml version="1.0" encoding="GBK"?>
<dwr>
<allow>
<create creator="new" javascript="videocategoryservice">
<param name="class" value="com.gslsoft.service.VideoCategoryService" />
</create>
</allow>
</dwr>

4、编写Test.jsp页面

view plaincopy to clipboardprint?
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ page import="java.util.*" %>
<%@ page import="com.gslsoft.service.*" %>
<%@ page import="com.gslsoft.model.*" %>
<html>
<head>
<title>文件上传</title>
<link rel="stylesheet" href="../../css/x_css1.css" mce_href="css/x_css1.css" type="text/css">
<mce:script type='text/javascript' src="/app/dwr/interface/videocategoryservice.js" mce_src="app/dwr/interface/videocategoryservice.js"></mce:script>
<mce:script type='text/javascript' src="/app/dwr/interface/VideoCategory.js" mce_src="app/dwr/interface/VideoCategory.js"></mce:script>
<mce:script type='text/javascript' src="/app/dwr/engine.js" mce_src="app/dwr/engine.js"></mce:script>
<mce:script type='text/javascript' src="/app/dwr/util.js" mce_src="app/dwr/util.js"></mce:script>
<mce:script type='text/javascript'><!--
//根据年级id获取上下学期
function queryterm()
{
//var gradeid=$("selectgrade").value;
var gradeid=window.document.getElementById("selectgradea").value;
//默认不选择
if(gradeid==0)
{
window.document.getElementById("selectterma").options.length=0;
window.document.getElementById("selectsubjecta").options.length=0;
}
else
{
videocategoryservice.getChildCategoryByParentId(gradeid,termCallBack);
}
}

function termCallBack(data)
{
window.document.getElementById("selectterma").options.length=0;

for(var i=0;i< data.length;i ++){
alert(data.length);
alert(typeof(data[i]));
var value =videocategoryservice.ConvertVideoCategory(data[i]).getCategoryId();
var text=videocategoryservice.ConvertVideoCategory(data[i]).getName();
var option = new Option(text, value);
//根据每组value和text标记的值创建一个option对象
try{
window.document.getElementById("selectterma").options.add(option);//将option对象添加到第二个下拉框中
}catch(e){
}
}

var termid = window.document.getElementById("selectterma").value;
alert(termid);
videocategoryservice.getChildCategoryByParentId(termid,subjectCallBack);

}

function querysubject()
{
var termid = window.document.getElementById("selectterma").value;
videocategoryservice.getChildCategoryByParentId(termid,subjectCallBack);
}

function subjectCallBack(VideoCategory)
{
window.document.getElementById("selectsubjecta").options.length=0;
for(var i=0;i< VideoCategory.length;i ++){
// var value = VideoCategory[i].categoryId;
//var text = VideoCategory[i].name;
var option = new Option("text", "value");
//根据每组value和text标记的值创建一个option对象
try{
window.document.getElementById("selectsubjecta").options.add(option);//将option对象添加到第三个下拉框中
}catch(e){
}
}
}

function change1()
{
queryterm();
}

function change2()
{
querysubject();
}
// --></mce:script>
</head>
<body>
<p> </p>
<FORM METHOD="POST" ACTION="UploadM.jsp" ENCTYPE="multipart/form-data">
<table id="Table1" bgcolor="#e1efcb" border="0" cellpadding="4" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td bgcolor="#f7f7f7" style="width: 80px">
类目选择:</td>
<td colspan="5">
<%
List<VideoCategory> listgrade,listterm,listsubject;
VideoCategoryService service1=new VideoCategoryService();
listgrade=service1.GetVideoCategoryByLevelID(1);
//listterm=service1.w_getChildCategoryByParentId(Integer.parseInt(request.getParameter("selectgrade")));
listsubject=service1.GetVideoCategoryByLevelID(3);
%>
<select name="selectgradea" style="width:120px" onchange="queryterm();">
<option selected="selected" value="0">
请选择年级...
</option>
<%
for(int i=0;i<listgrade.size();i++)
{
%>
<option value="<%=listgrade.get(i).getCategoryId()%>"><%=listgrade.get(i).getName()%></option>
<%
}
%>
<%
listterm=service1.getChildCategoryByParentId(3);
%>
</select>
<select name="selectterma" style="width:120px" onchange="querysubject();">
<option selected="selected" value="0">
请选择学期...
</option>
</select>
<select name="selectsubjecta" style="width:120px" onchange="">
<option selected="selected" value="0">
请选择科目...
</option>
</select>
</td>
</tr>
</tbody>
</table>
</FORM>
</body>
</html>


本文来自CSDN博客,转载请标明出处:file:///C:/Documents%20and%20Settings/Administrator/桌面/我的文件夹/我下载的学习网页/JSP的那些事儿(4)----DWR实现级联%20%26%20JSP页面的查询%20-%20薛敬明的专栏%20-%20CSDN博客.htm

5、运行出现错误

6、问题所在:

如何将data[i]的类型object转换为用户自定义的VideoCategory类型?

7、解决方案

(1)在dwr.xml加入:

//VideoCategory表示用户自定义的类型

<convert converter="bean" match="com.gslsoft.model.VideoCategory" />

(2)jsp页面直接使用

data[i].id取得其id属性,而不要使用getid()方法来调用其属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值