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()方法来调用其属性
分享到:
相关推荐
2. **前端代码**:展示如何在HTML页面中使用JavaScript和DWR API创建级联菜单的结构,并实现事件监听,触发服务器端的方法调用。 3. **后端代码**:解释如何在Java中编写处理级联菜单请求的方法,获取并返回子菜单...
在实现ssh+dwr的3级联过程中,开发者通常会遵循以下步骤: 1. 配置SSH:设置SSH服务器,配置公钥认证,确保服务器的安全性。 2. 构建后端服务:使用Spring(SSH中的S)框架来设计和实现业务逻辑层,处理来自DWR的...
AJAX-DWR下拉框级联是Web...总的来说,AJAX-DWR下拉框级联是提升Web应用交互性和效率的有效手段,通过DWR与数据库的实时交互,实现了用户选择的动态响应。同时,理解并掌握用户身份验证机制对保障网站安全至关重要。
Ajax(异步JavaScript和XML)是一种在无需刷新整个网页的情况下,...通过级联功能的实现,我们可以看到DWR在动态更新页面内容方面的强大能力。如果你在实际项目中遇到类似需求,参照这个示例应该能快速上手并进行扩展。
总之,DWR级联菜单下拉框是利用DWR和AJAX技术实现的动态交互功能,它简化了前后端通信,提供了更流畅的用户体验。通过学习和实践这个案例,开发者可以提升在Web应用开发中对DWR、AJAX以及级联菜单设计的理解和应用...
在这个场景中,“SSH + dwr 实现三级级联”指的是使用SSH框架与DWR技术结合,来实现前端页面中的多级联动下拉框功能。 首先,让我们详细了解一下SSH框架: 1. **Struts**:这是一个基于MVC(Model-View-Controller...
本篇文章将深入探讨如何利用DWR来实现一个两级级联菜单,并以SQL Server 2000数据库作为数据源。 首先,我们需要理解DWR的基本工作原理。DWR允许在后台执行Java方法并返回结果到前端,无需刷新整个页面。这种技术...
总之,DWR在实现页面中的级联选择列表动态更新方面具有强大的能力,它可以简化前后端的数据交互,提高用户体验,同时保持代码的清晰和可维护性。通过以上步骤,你可以构建一个功能完善的级联选择列表系统。
这个例子“dwr例子演示级联菜单”旨在帮助我们理解如何使用DWR来创建动态的、交互式的级联下拉菜单。级联菜单常用于Web应用程序中,例如在选择国家时自动更新相应的省份列表。 首先,让我们了解一下DWR的基本工作...
在这个特定的场景中,我们利用Ajax技术和Direct Web Remoting(DWR)框架来创建一个动态的省份城市级联菜单。这个功能能够提升用户体验,因为它减少了用户手动刷新页面的需求,提供了流畅的交互。 首先,我们需要...
在这个"Dwr.rar_dwr_dwr jsp_jsp d_jsp dwr"的实例中,我们将探讨如何将DWR集成到JSP(JavaServer Pages)项目中,以及这种集成可以带来的好处和实现方式。 首先,DWR的核心功能是创建了一个安全的、跨域的AJAX...
DWR则是一种JavaScript到Java的远程调用技术,允许前端JavaScript直接调用后端服务器的Java方法,从而实现实时交互和数据更新。 在实现三级联动的情景中,通常指的是在网页上有三个下拉框,它们的选项根据用户在上...
例如,在一个用户查询操作的场景中,JSP页面可能使用DWR来触发一个Java方法,这个方法利用数据库缓存池获取连接,执行SQL查询,然后将结果返回给DWR,最终DWR将查询结果展示在前端页面上。在这个过程中,DWR保证了...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在客户端浏览器和服务器之间进行实时的、安全的、动态的JavaScript到Java...这将帮助你掌握DWR的基本用法,从而在J2EE项目中实现更流畅的前端交互体验。
以下是使用DWR和JSP实现无刷新技术的一些关键知识点: 1. **DWR配置**:首先,需要在Web应用的`web.xml`配置文件中注册DWR引擎,设置过滤器和Servlet,以便处理与DWR相关的请求。 2. **创建Java类**:在服务器端,...
DWR是一种JavaScript库,它使得在浏览器和服务器之间进行异步通信变得更加简单,从而实现页面的动态更新而无需刷新整个页面。 **一、DWR三级联动下拉菜单** 在Web应用中,三级联动下拉菜单常用于地理信息选择,如...
DWR(Direct Web Remoting)是一个...通过以上步骤,我们可以利用DWR和JSP实现一个高效、无刷新的分页功能,为用户提供更加流畅的浏览体验。在实际开发中,还需要结合具体的业务需求和项目架构进行适当的调整和优化。
级联菜单(Cascading Menu)在...总的来说,这个项目旨在教你如何结合Java、DWR和数据库技术实现动态的级联菜单,提高Web应用的交互性。通过实践这个例子,你可以加深对Java后端开发、Ajax通信和前端动态更新的理解。
**DWR(Direct Web Remoting)**是一种Java技术,它允许Web应用程序在客户端与服务器之间进行实时通信,而无需刷新整个页面。通过DWR,我们可以使用JavaScript直接调用服务器端的Java方法,实现Ajax(Asynchronous ...
在本场景中,我们利用DWR的功能来模拟一个控制台,实时将后台的日志输出到JSP(JavaServer Pages)页面上,从而提供一种直观的方式来监控应用程序的运行状态。 首先,理解DWR的工作原理至关重要。DWR的核心是异步...