`
ch_kexin
  • 浏览: 897959 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

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

    博客分类:
  • dwr
阅读更多
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()方法来调用其属性
分享到:
评论

相关推荐

    dwr 实现 级联菜单 外加一本pdf的参考书

    2. **前端代码**:展示如何在HTML页面中使用JavaScript和DWR API创建级联菜单的结构,并实现事件监听,触发服务器端的方法调用。 3. **后端代码**:解释如何在Java中编写处理级联菜单请求的方法,获取并返回子菜单...

    ssh+dwr 3级联

    在实现ssh+dwr的3级联过程中,开发者通常会遵循以下步骤: 1. 配置SSH:设置SSH服务器,配置公钥认证,确保服务器的安全性。 2. 构建后端服务:使用Spring(SSH中的S)框架来设计和实现业务逻辑层,处理来自DWR的...

    AJAX-DWR下拉框级联

    AJAX-DWR下拉框级联是Web...总的来说,AJAX-DWR下拉框级联是提升Web应用交互性和效率的有效手段,通过DWR与数据库的实时交互,实现了用户选择的动态响应。同时,理解并掌握用户身份验证机制对保障网站安全至关重要。

    Ajax的dwr框架实现级联

    Ajax(异步JavaScript和XML)是一种在无需刷新整个网页的情况下,...通过级联功能的实现,我们可以看到DWR在动态更新页面内容方面的强大能力。如果你在实际项目中遇到类似需求,参照这个示例应该能快速上手并进行扩展。

    DWR级联菜单下拉框

    总之,DWR级联菜单下拉框是利用DWR和AJAX技术实现的动态交互功能,它简化了前后端通信,提供了更流畅的用户体验。通过学习和实践这个案例,开发者可以提升在Web应用开发中对DWR、AJAX以及级联菜单设计的理解和应用...

    SSH+dwr实现三级级联

    在这个场景中,“SSH + dwr 实现三级级联”指的是使用SSH框架与DWR技术结合,来实现前端页面中的多级联动下拉框功能。 首先,让我们详细了解一下SSH框架: 1. **Struts**:这是一个基于MVC(Model-View-Controller...

    dwr实现2级级联菜单(sql2000 数据库)

    本篇文章将深入探讨如何利用DWR来实现一个两级级联菜单,并以SQL Server 2000数据库作为数据源。 首先,我们需要理解DWR的基本工作原理。DWR允许在后台执行Java方法并返回结果到前端,无需刷新整个页面。这种技术...

    dwr实现select列表的动态级联

    总之,DWR在实现页面中的级联选择列表动态更新方面具有强大的能力,它可以简化前后端的数据交互,提高用户体验,同时保持代码的清晰和可维护性。通过以上步骤,你可以构建一个功能完善的级联选择列表系统。

    dwr例子演示级联菜单

    这个例子“dwr例子演示级联菜单”旨在帮助我们理解如何使用DWR来创建动态的、交互式的级联下拉菜单。级联菜单常用于Web应用程序中,例如在选择国家时自动更新相应的省份列表。 首先,让我们了解一下DWR的基本工作...

    Ajax级联菜单,通过dwr框架实现省份城市级联效果

    在这个特定的场景中,我们利用Ajax技术和Direct Web Remoting(DWR)框架来创建一个动态的省份城市级联菜单。这个功能能够提升用户体验,因为它减少了用户手动刷新页面的需求,提供了流畅的交互。 首先,我们需要...

    Dwr.rar_dwr_dwr jsp_jsp d_jsp dwr

    在这个"Dwr.rar_dwr_dwr jsp_jsp d_jsp dwr"的实例中,我们将探讨如何将DWR集成到JSP(JavaServer Pages)项目中,以及这种集成可以带来的好处和实现方式。 首先,DWR的核心功能是创建了一个安全的、跨域的AJAX...

    ssh+dwr(实现3级联)

    DWR则是一种JavaScript到Java的远程调用技术,允许前端JavaScript直接调用后端服务器的Java方法,从而实现实时交互和数据更新。 在实现三级联动的情景中,通常指的是在网页上有三个下拉框,它们的选项根据用户在上...

    用数据库缓存池和dwr实现的jsp程序

    例如,在一个用户查询操作的场景中,JSP页面可能使用DWR来触发一个Java方法,这个方法利用数据库缓存池获取连接,执行SQL查询,然后将结果返回给DWR,最终DWR将查询结果展示在前端页面上。在这个过程中,DWR保证了...

    DWR简单例子&中文文档

    Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在客户端浏览器和服务器之间进行实时的、安全的、动态的JavaScript到Java...这将帮助你掌握DWR的基本用法,从而在J2EE项目中实现更流畅的前端交互体验。

    dwr实现的无刷新技术 dwr+jsp

    以下是使用DWR和JSP实现无刷新技术的一些关键知识点: 1. **DWR配置**:首先,需要在Web应用的`web.xml`配置文件中注册DWR引擎,设置过滤器和Servlet,以便处理与DWR相关的请求。 2. **创建Java类**:在服务器端,...

    纯JSP+DWR实现三级联动下拉选择菜单 实现无刷新联动 DWR判断用户是否存在 ajax二级联动菜单 DWR操作数据库模拟实现Google搜索效果

    DWR是一种JavaScript库,它使得在浏览器和服务器之间进行异步通信变得更加简单,从而实现页面的动态更新而无需刷新整个页面。 **一、DWR三级联动下拉菜单** 在Web应用中,三级联动下拉菜单常用于地理信息选择,如...

    dwr实现的分页功能

    DWR(Direct Web Remoting)是一个...通过以上步骤,我们可以利用DWR和JSP实现一个高效、无刷新的分页功能,为用户提供更加流畅的浏览体验。在实际开发中,还需要结合具体的业务需求和项目架构进行适当的调整和优化。

    级联菜单 java+dwr

    级联菜单(Cascading Menu)在...总的来说,这个项目旨在教你如何结合Java、DWR和数据库技术实现动态的级联菜单,提高Web应用的交互性。通过实践这个例子,你可以加深对Java后端开发、Ajax通信和前端动态更新的理解。

    dwr实现ajax功能ajax+dwr

    **DWR(Direct Web Remoting)**是一种Java技术,它允许Web应用程序在客户端与服务器之间进行实时通信,而无需刷新整个页面。通过DWR,我们可以使用JavaScript直接调用服务器端的Java方法,实现Ajax(Asynchronous ...

    用DWR模拟控制台实现日志主动输出到JSP页面

    在本场景中,我们利用DWR的功能来模拟一个控制台,实时将后台的日志输出到JSP(JavaServer Pages)页面上,从而提供一种直观的方式来监控应用程序的运行状态。 首先,理解DWR的工作原理至关重要。DWR的核心是异步...

Global site tag (gtag.js) - Google Analytics