- 浏览: 215368 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1453<script language="javas ... -
javascript判断各种浏览器
2010-03-15 22:26 19696JavaScript是前端开发的主要语言,我们可以通过编写Ja ... -
自适应显示FLASH
2008-01-08 12:11 1345弄两个尺寸不同的flash分别是: 1.swf, 2.swf ... -
正则表达式
2008-01-08 12:10 869"^\\d+$" //非负整数(正整 ... -
檢驗郵箱
2008-01-08 12:06 911function checkMail(s) { var p ...
相关推荐
ajax技术中利用dwr框架实现二级联动菜单,页面无刷新
dwr实现的完整的二级下拉联动列表,里面有说明,源代码。
dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架
Ajax的简述 传统web开发模式与ajax开发模式的不同 Ajax的开发与案例 Dwr框架的简介 Dwr框架的应用与案例 Dwr 框架与Struts,Spring框架的结合
NULL 博文链接:https://zyz.iteye.com/blog/1702669
这是一个简单的由DWR调用Spring Bean的简单例子
NULL 博文链接:https://605113068.iteye.com/blog/1724903
DWR+Struts+Hibernate+Spring 做的三级联动菜单,动态的,带测试文件,把关系包复制到WebRoot下lib就可以运行!
DWR示例 包括DWR基本配置 DWR传递对象 DWR 反转ajax DWR与spring集成
该文件中包括了dwr框架和spring框架结合使用方法,使用注解方式。
dwr与 spring整合 传对象的例子
dwr结合spring的例子。 可以直接运行,就是一个简单的demo,方便帮助理解dwr的使用 希望可以帮到需要的人。
Dwr+spring+JDBC 小例子,供分享
dwr与spring集成的两种方式,来之网上搜索的文档。。
dwr框架+struts+Hibrenate实现下拉菜单二级联动,有注释,应用方便
SSH与DWR框架整合SSH与DWR框架整合SSH与DWR框架整合
使用dwr+spring实现消息推送 。
ajax,spring,hibernate,dwr,实现二级联动
数据库用的是oracle,ajax框架用的是dwr,写的省市县三级联动,下载用户要建三张表用来存储省 、市、县的信息。
这个是关于SPRING结合DWR的例子哦。