- 浏览: 219889 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
weiwangchao:
好用么?好用么?
PHP的pack("H*", $str)转换为java函数 -
qianguming:
顶起
[转]MYSQL中查找重复记录的几种情况 -
wxf1988:
好用,非常好
下载中文文件名乱码问题 -
f0799:
firefox 附件下载中文乱码,确实很头疼
下载中文文件名乱码问题 -
liukun309:
很好,帮我解决了下载excel文件名乱码问题
下载中文文件名乱码问题
最近做個案子,需要三級聯動的效果,不多說以下是例子的配置以及代碼,希望對大家有幫助
web.xml
dwr.xml
Channel.java
applicationContext.xml
此例子意在說明dwr與spring結合的配置,在Channel.java類中所定義的Dao,在applicationContext.xml中的配置
如此例Channel中定義:
以及在applicationContext.xml中的配置
web.xml
<!-- Spring 服务层的配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml /WEB-INF/applicationContext-security.xml /WEB-INF/applicationContext-quartz.xml </param-value> </context-param> <!-- Spring 容器启动监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
dwr.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 0.4//EN" "http://www.getahead.ltd.uk/dwr/dwr.dtd"> <dwr> <allow> <create creator="spring" javascript="channel"> <param name="beanName" value="DWRChannel"/> </create> <convert converter="bean" match="com.healthcare.bean.HCClass01" /> <convert converter="bean" match="com.healthcare.bean.HCClass02" /> <convert converter="bean" match="com.healthcare.bean.HCClass03" /> </allow> </dwr>
Channel.java
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.healthcare.controller; import com.healthcare.bean.HCClass01; import com.healthcare.bean.HCClass02; import com.healthcare.bean.HCClass03; import com.healthcare.dao.HCClass01Dao; import com.healthcare.dao.HCClass02Dao; import com.healthcare.dao.HCClass03Dao; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; /** * * @author lam */ public class Channel { @Autowired private HCClass01Dao class01Dao; @Autowired private HCClass02Dao class02Dao; @Autowired private HCClass03Dao class03Dao; /** * 根据一階编号获取二階 * @param id * 一階编号 * @return List<HCClass02><br> */ public Map getHCClass02sByHCClass01Id(String id) { List<HCClass02> hCClass02s = null; if (class02Dao == null) { System.out.println("hCClass02Dao is null"); } Map map = new HashMap(); System.out.println("HCClass01ID:=========="+ id); if (!StringUtils.isEmpty(id)) { hCClass02s = class02Dao.getHCClass02ByHCClass01Id(id); } for (int i = 0; i < hCClass02s.size(); i++) { HCClass02 class02 = (HCClass02)hCClass02s.get(i); map.put(class02.getId(), class02.getName()); } return map; } /** * 根据二階编号获取三階 * @param id * 二階编号 * @return List<HCClass03><br> */ public Map getHCClass03sByHCClass02Id(String id) { List<HCClass03> hCClass03s = null; Map map = new HashMap(); System.out.println("HCClass02ID:=========="+ id); if (!StringUtils.isEmpty(id)) { hCClass03s = class03Dao.getHCClass03ByHCClass02Id(id); } for (int i = 0; i < hCClass03s.size(); i++) { HCClass03 class03 = (HCClass03)hCClass03s.get(i); map.put(class03.getId(), class03.getName()); } return map; } public HCClass01Dao getClass01Dao() { return class01Dao; } public void setClass01Dao(HCClass01Dao class01Dao) { this.class01Dao = class01Dao; } public HCClass02Dao getClass02Dao() { return class02Dao; } public void setClass02Dao(HCClass02Dao class02Dao) { this.class02Dao = class02Dao; } public HCClass03Dao getClass03Dao() { return class03Dao; } public void setClass03Dao(HCClass03Dao class03Dao) { this.class03Dao = class03Dao; } }
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" p:location="/WEB-INF/jdbc.properties" /> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}"/> <!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="database" value="MYSQL" /> <property name="showSql" value="false" /> </bean> </property> <property name="jpaPropertyMap"> <map> <entry key="formatSql" value="true"/> </map> </property> <property name="persistenceUnitName" value="hc-unit" /> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> <bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor" /> <bean id="hCClass01Dao" class="com.healthcare.dao.impl.HCClass01DaoImpl"/> <bean id="hCClass02Dao" class="com.healthcare.dao.impl.HCClass02DaoImpl"/> <bean id="hCClass03Dao" class="com.healthcare.dao.impl.HCClass03DaoImpl"/> <bean id="DWRChannel" class="com.healthcare.controller.Channel"> <property name="class01Dao"> <ref bean="hCClass01Dao" /> </property> <property name="class02Dao"> <ref bean="hCClass02Dao" /> </property> <property name="class03Dao"> <ref bean="hCClass03Dao" /> </property> </bean> </beans>
<script type='text/javascript' src='dwr/interface/channel.js'></script> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script> <script language="javascript"> // 根据选择的省,获得其所辖的市 function getHCClass02_1(){ var obj_class01 = document.getElementById("sel_class01_1"); var obj_class02 = document.getElementById("sel_class02_1"); var obj_class03 = document.getElementById("sel_class03_1"); var class01_Index = obj_class01.selectedIndex; var class01_Value = obj_class01.options[class01_Index].value; if(class01_Value != "" && class01_Value != null){ channel.getHCClass02sByHCClass01Id(class01_Value,class02Return_1); }else{ DWRUtil.removeAllOptions(obj_class02); DWRUtil.addOptions(obj_class02,{'':'請選擇'}); DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); } DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); } // 回调函数 function class02Return_1(data){ var obj_class02 = document.getElementById("sel_class02_1"); DWRUtil.removeAllOptions(obj_class02); DWRUtil.addOptions(obj_class02,{'':'請選擇'}); DWRUtil.addOptions(obj_class02,data); } function getHCClass02_2(){ var obj_class01 = document.getElementById("sel_class01_2"); var obj_class02 = document.getElementById("sel_class02_2"); var obj_class03 = document.getElementById("sel_class03_2"); var class01_Index = obj_class01.selectedIndex; var class01_Value = obj_class01.options[class01_Index].value; if(class01_Value != "" && class01_Value != null){ channel.getHCClass02sByHCClass01Id(class01_Value,class02Return_2); }else{ DWRUtil.removeAllOptions(obj_class02); DWRUtil.addOptions(obj_class02,{'':'請選擇'}); DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); } DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); } // 回调函数 function class02Return_2(data){ var obj_class02 = document.getElementById("sel_class02_2"); DWRUtil.removeAllOptions(obj_class02); DWRUtil.addOptions(obj_class02,{'':'請選擇'}); DWRUtil.addOptions(obj_class02,data); } // 根据选择的市,获得所辖的县 function getHCClass03_1(){ var obj_class01 = document.getElementById("sel_class01_1"); var obj_class02 = document.getElementById("sel_class02_1"); var obj_class03 = document.getElementById("sel_class03_1"); var class02_Index = obj_class02.selectedIndex; var class02_Value = obj_class02.options[class02_Index].value; if(class02_Value != "" && class02_Value != null){ channel.getHCClass03sByHCClass02Id(class02_Value,class03Return_1); }else{ DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); } } // 回调函数 function class03Return_1(data){ var obj_class03 = document.getElementById("sel_class03_1"); DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); DWRUtil.addOptions(obj_class03,data); } function getHCClass03_2(){ var obj_class01 = document.getElementById("sel_class01_2"); var obj_class02 = document.getElementById("sel_class02_2"); var obj_class03 = document.getElementById("sel_class03_2"); var class02_Index = obj_class02.selectedIndex; var class02_Value = obj_class02.options[class02_Index].value; if(class02_Value != "" && class02_Value != null){ channel.getHCClass03sByHCClass02Id(class02_Value,class03Return_2); }else{ DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); } } // 回调函数 function class03Return_2(data){ var obj_class03 = document.getElementById("sel_class03_2"); DWRUtil.removeAllOptions(obj_class03); DWRUtil.addOptions(obj_class03,{'':'請選擇'}); DWRUtil.addOptions(obj_class03,data); } </script> <tr> <td height="25" valign="top" class="R_title_font"><div align="right">所屬頻道</div></td> <td height="25" colspan="4" bgcolor="#FFFFCC" class="Rmenu_onetitle"> <select name="hCClass01Id1" id="sel_class01_1" onchange="getHCClass02_1()"> <option value="">請選擇</option> <c:forEach items="${hCClass01s}" var="hCClass01"> <option value="${hCClass01.id}">${hCClass01.name}</option> </c:forEach> </select> <select name="hCClass02Id1" id="sel_class02_1" onchange="getHCClass03_1()"> <option value="">請選擇</option> </select> <select name="hCClass03Id1" id="sel_class03_1"> <option value="">請選擇</option> </select> </td> </tr> <tr> <td height="25" valign="top" class="R_title_font"><div align="right">所屬頻道</div></td> <td height="25" colspan="4" bgcolor="#FFFFCC" class="Rmenu_onetitle"> <select name="hCClass01Id2" id="sel_class01_2" onchange="getHCClass02_2()"> <option value="">請選擇</option> <c:forEach items="${hCClass01s}" var="hCClass01"> <option value="${hCClass01.id}">${hCClass01.name}</option> </c:forEach> </select> <select name="hCClass02Id2" id="sel_class02_2" onchange="getHCClass03_2()"> <option value="">請選擇</option> </select> <select name="hCClass03Id2" id="sel_class03_2"> <option value="">請選擇</option> </select> </td> </tr>
此例子意在說明dwr與spring結合的配置,在Channel.java類中所定義的Dao,在applicationContext.xml中的配置
如此例Channel中定義:
@Autowired private HCClass01Dao class01Dao; @Autowired private HCClass02Dao class02Dao; @Autowired private HCClass03Dao class03Dao;
以及在applicationContext.xml中的配置
<bean id="hCClass01Dao" class="com.healthcare.dao.impl.HCClass01DaoImpl"/> <bean id="hCClass02Dao" class="com.healthcare.dao.impl.HCClass02DaoImpl"/> <bean id="hCClass03Dao" class="com.healthcare.dao.impl.HCClass03DaoImpl"/> <bean id="DWRChannel" class="com.healthcare.controller.Channel"> <property name="class01Dao"> <ref bean="hCClass01Dao" /> </property> <property name="class02Dao"> <ref bean="hCClass02Dao" /> </property> <property name="class03Dao"> <ref bean="hCClass03Dao" /> </property> </bean>
发表评论
-
漂浮广告,兼容ie、firefox,多个漂浮不冲突
2011-06-21 18:08 0<!DOCTYPE html PUBLIC &quo ... -
js判断中英文字符串长度
2010-03-24 21:15 1485<script language="javas ... -
javascript判断各种浏览器
2010-03-15 22:26 19727JavaScript是前端开发的主要语言,我们可以通过编写Ja ... -
自适应显示FLASH
2008-01-08 12:11 1380弄两个尺寸不同的flash分别是: 1.swf, 2.swf ... -
正则表达式
2008-01-08 12:10 898"^\\d+$" //非负整数(正整 ... -
檢驗郵箱
2008-01-08 12:06 935function checkMail(s) { var p ...
相关推荐
**标题解析:**“三级联动(DWR框架,hibernate)”指的是在Web开发中,使用Direct Web Remoting (DWR) 框架与Hibernate ORM工具实现的一种数据交互和展示方式。三级联动通常指的是在三个下拉列表中,前一个列表的...
标题 "DWR实现省市县三级联动小例子" 暗示了这个压缩包可能包含一个使用Direct Web Remoting (DWR) 技术构建的示例项目,该示例展示了如何实现在网页上进行省、市、县三级联动选择的功能。这种功能在很多中国的网站...
**Ajax DWR 框架实现二级联动下拉列表源码详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。DWR(Direct Web Remoting)则是一个用于Java web应用的开源...
#### 三、DWR与Spring集成的方式 ##### 第一种方式:在dwr.xml中指定Spring Bean 这种方式是在DWR的配置文件dwr.xml中指定业务对象的创建方式为Spring,并提供该对象在Spring容器中的ID。具体步骤如下: 1. **...
此项目结合了DWR(Direct Web Remoting)、Struts、Hibernate和Spring四大技术框架,旨在创建一个动态的三级联动菜单,通过Ajax实现数据的实时更新,提高用户体验。 首先,DWR是一个强大的JavaScript库,它允许...
**Spring与DWR结合** Spring框架是Java领域中广泛使用的轻量级应用框架,它提供了依赖注入、面向切面编程、事务管理等核心功能,帮助开发者构建可维护性高、可扩展性强的企业级应用程序。而Direct Web Remoting ...
将DWR与Spring结合使用,可以构建出更高效、更灵活的Web应用。 在这个例子中,我们将会探讨如何将DWR与Spring集成,创建一个可运行的示例。首先,我们需要在项目中添加DWR和Spring的相关依赖。这通常通过Maven或...
将DWR与Spring结合,可以创建出高效且易于维护的消息推送系统。首先,我们需要在Spring配置中声明DWR的相关bean,包括`DWRConfiguration`、`CatalinaReverseAjaxServlet`以及应用中定义的远程服务接口。这些配置通常...
标题 "DWR与SPRING 集成" 涉及到的是两个在Web开发中常用的开源框架——Direct Web Remoting (DWR) 和 Spring。DWR允许在浏览器和服务器之间进行实时、异步的数据交换,而Spring是Java企业级应用的全面解决方案,...
本示例"dwrspringjdbc"探讨了如何将Direct Web Remoting (DWR)、Spring框架和Java Database Connectivity (JDBC)有效地结合在一起。这三个技术在Web开发中扮演着重要的角色,下面将分别介绍它们的核心概念和在项目中...
在DWR2中,与Spring2框架的集成可以让开发者充分利用Spring的依赖注入、事务管理等优势,同时利用DWR的异步AJAX能力,创建出更加灵活、响应式的用户界面。 集成DWR2和Spring2的关键在于配置和组件的绑定。首先,...
在介绍的省市县三级联动的例子中,通过DWR与AJAX的结合使用,可以实现用户在选择一个省级别之后,页面能够动态地加载并显示该省份下属的所有市级选项。同样地,再选择一个市级之后,页面能够加载并显示该市下属的...
以下是对标题和描述中提到的“关于Spring结合DWR的例子”的深入解析: #### 配置Web.xml 在Web应用中,需要在`web.xml`文件中配置DWR的servlet。这是因为DWR通过一个名为`DWRServlet`的servlet来处理所有来自...
**DWR(Direct Web Remoting)与Spring框架的整合** DWR是一款开源的Java库,它允许在浏览器和服务器之间进行动态、实时的双向通信,实现了JavaScript与Java之间的远程调用。Spring则是一个广泛使用的Java企业级...
《DWR实现的省市县三级联动与Oracle数据库的结合》 在现代Web开发中,为了提供用户友好的界面,常需要实现如省市县三级联动的功能,即用户选择一个省份后,下拉菜单自动加载该省份对应的市,接着选择市后,再加载...
提供的文档“dwr与spring.doc”和“dwr与struts2.doc”可能详细阐述了整合过程和最佳实践,而“一个小例子.txt”可能包含了一个实际整合示例,帮助读者更好地理解整合步骤和实现方式。学习并掌握这些知识对于提升...
4. **安全控制**:结合Spring Security,可以对DWR的访问进行权限控制。 在实际开发中,DWR示例可能包含以下内容: - **HelloWorld示例**:展示如何设置DWR并实现简单的客户端-服务器通信。 - **对象传递示例**:...
DWR可以轻松地与流行的Java框架如Struts和Spring集成。在Struts中,DWR可以作为Action的补充,提供异步功能。在Spring框架中,DWR可以通过Spring的AOP(面向切面编程)和依赖注入特性,更好地管理服务器端的Java对象...