DWR2整合SPRIN1.2.8,HIBERNATE3实现下拉联动
1.下载DWR2,把dwr.jar拷贝到工程的lib目录下
以下按步骤看...
/** *Feb 23, 2007 * Zhou JianGuo * 小白 * 中国电信上海技术研究院 * MSN:zhuojianguo_leo@hotmail.com */
Web.xml
<!-- AJAX DWR2 --> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>pollAndCometEnabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>allowGetForSafariButMakeForgeryEasier</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- Ajax DWR2拦截 --> <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 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <!-- 联动菜单--> <create creator="spring" javascript="SelectDAO"> <param name="beanName" value="selectDAO"/> <param name="location1" value="../applicationContext/select.xml"></param> <param name="location2" value="../applicationContext/applicationContext.xml"></param> </create>
</allow></dwr>
select.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <!-- select --> <bean id="selectDAO" class="com.procedure.util.select.SelectDAO" > <property name="selectServiceImpl"> <ref bean="SelectServiceImpl" /> </property> </bean> <bean id="SelectServiceImpl" parent="baseTransactionProxy"> <property name="target"> <ref local="SelectServiceImplTarget" /> </property> </bean>
<bean id="SelectServiceImplTarget" class="com.procedure.org.framework.service.select.SelectServiceImpl"> <property name="commonDAO"> <ref bean="commonDAO" /> </property> </bean></beans>
applicationContext.xml是主要的事务管理什么的,不贴了
SelectDAO.java
/** *Feb 27, 2007 * Zhou JianGuo * 小白 * 中国电信上海技术研究院 * MSN:zhuojianguo_leo@hotmail.com */package com.procedure.util.select;
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.hibernate.Session;import org.hibernate.Transaction;
import com.procedure.hibernate.SessionFactory.HibernateSessionFactory;import com.procedure.hibernate.oracle10.getHibernateTemplate.model.VideoArea;import com.procedure.org.framework.service.select.SelectService;
/** *Feb 27, 2007 * Zhou JianGuo * 小白 * 中国电信上海技术研究院 * MSN:zhuojianguo_leo@hotmail.com */public class SelectDAO {
/** * */ public SelectDAO() { // TODO Auto-generated constructor stub } /* * 获取所有大类的类别列表 */ /** *Feb 20, 2007 * Zhou JianGuo * 小白 * 中国电信上海技术研究院 * MSN:zhuojianguo_leo@hotmail.com */ SelectService selectServiceImpl;
VideoArea VideoArea=new VideoArea(); protected final Log logger = LogFactory.getLog(getClass().getName()); public Map getBigType() { Map map = new HashMap(); List list = new ArrayList(); String queryString="from VideoArea where childid is null"; list=selectServiceImpl.getBigType(queryString); for(int i=0;i<list.size();i++){ //---------这里只能采用这种形式,呵呵,为什么??请去看DWR的文档吧 map.put(((VideoArea)list.get(i)).getFatherid(),((VideoArea)list.get(i)).getFathername()); } return map; } public Map getSmallType(String data) { Map map = new HashMap(); List list = new ArrayList(); String queryString="from VideoArea where fatherid = ? and childid is not null"; list=selectServiceImpl.getSmallType(queryString,data); System.out.println("list="+list); for(int i=0;i<list.size();i++){ map.put(((VideoArea)list.get(i)).getChildid(),((VideoArea)list.get(i)).getChildname()); } return map; }
/** * @return the selectServiceImpl */ public SelectService getSelectServiceImpl() { return selectServiceImpl; }
/** * @param selectServiceImpl the selectServiceImpl to set */ public void setSelectServiceImpl(SelectService selectServiceImpl) { this.selectServiceImpl = selectServiceImpl; }}
SelectService.java
/** *Nov 8, 2006 * Zhou JianGuo * 小白 * MSN:zhuojianguo_leo@hotmail.com */package com.procedure.org.framework.service.select;
import java.util.List;
/** *Nov 8, 2006 * Zhou JianGuo * 小白 * MSN:zhuojianguo_leo@hotmail.com */public interface SelectService{ /** * Make the given instance managed and persistent. */ public List getBigType(String queryString); public List getSmallType(String queryString,String params);}
SelectServiceImpl.java
/** *Nov 8, 2006 * Zhou JianGuo * 小白 * MSN:zhuojianguo_leo@hotmail.com */package com.procedure.org.framework.service.select;
import java.util.List;
import org.springframework.context.ApplicationContext;
import com.procedure.hibernate.oracle10.getHibernateTemplate.model.VideoArea;import com.procedure.org.framework.dao.ICommonDAO;import com.procedure.org.framework.service.BaseServiceImpl;
/** *Nov 8, 2006 * Zhou JianGuo * 小白 * MSN:zhuojianguo_leo@hotmail.com */public class SelectServiceImpl implements SelectService{
/** * */ public SelectServiceImpl() { // TODO Auto-generated constructor stub } private ICommonDAO commonDAO; /** * The service Spring bean id, used in the applicationContext.xml file. */ private static final String SERVICE_BEAN_ID = "SelectServiceImpl";
/** * Returns the singleton <code>IProcedureService</code> instance. */ public static ICommonDAO getInstance(ApplicationContext context) { return (ICommonDAO)context.getBean(SERVICE_BEAN_ID); } /** * @return the commonDAO */ public ICommonDAO getCommonDAO() { return commonDAO; } /** * @param commonDAO the commonDAO to set */ public void setCommonDAO(ICommonDAO commonDAO) { this.commonDAO = commonDAO; } public List getBigType(String queryString) { // TODO Auto-generated method stub return (List)this.getCommonDAO().getSelect(queryString); } public List getSmallType(String queryString,String params) { // TODO Auto-generated method stub return (List)this.getCommonDAO().getSelect(queryString,params); }
}
页面上的
<script type='text/javascript' src='../dwr/engine.js'> </script> <script type='text/javascript' src='../dwr/util.js'> </script> <script type='text/javascript' src='../dwr/interface/SelectDAO.js'> </script> <script type='text/javascript' src="<%=JS_PATH%>/select.js"></script>
select.js代码
/*--------------------------------------------------|| Zhou jianguo ||---------------------------------------------------|| Copyright (c) 2007-2008 ChinaTelecom || || Updated: 25.02.2007 ||--------------------------------------------------*/function loadSelect(){ SelectDAO.getBigType(createSelect);}function createSelect(data){ var big = document.getElementById("cpycde"); var small = document.getElementById("orgcde"); DWRUtil.removeAllOptions("cpycde"); DWRUtil.removeAllOptions("orgcde"); DWRUtil.addOptions("cpycde",{0:'选择地区'});//----------设置一个初始化的下拉列表内容 DWRUtil.addOptions("orgcde",{0:'选择区县'}); big.options[0].selected=true; small.options[0].selected=true; DWRUtil.addOptions("cpycde", data);}function selectASmallcategories(data){var small = document.getElementById("orgcde");var smallcategories=dwr.util.getValue("orgcde"); small.length=1; small.options[0].selected=true; if(data == "0"){ DWRUtil.removeAllOptions("orgcde"); DWRUtil.addOptions("orgcde",{0:'选择区县'}); small.length=1; small.options[0].selected=true; }else { DWRUtil.removeAllOptions("orgcde"); DWRUtil.addOptions("orgcde",{0:'选择区县'}); SelectDAO.getSmallType(data,getASmallInfo);//这里被调用的方法要放后面,要传递的参数放前面 } }function getASmallInfo(data){ DWRUtil.addOptions("orgcde",data); }
页面上的
<TR class=common> <TD class=title>录入时间: </TD> <TD class=input><html:text property="datime" styleClass="common" maxlength="20" readonly="true" />*</TD> <TD class=title>地区码: </TD> <TD class=input><html:select property="cpycde" styleClass="common" οnchange="selectASmallcategories(this.value)"> </html:select> </TD> <TD class=title>区县码: </TD> <TD class=input><html:select property="orgcde" styleClass="common"> </html:select> </TD> </TR>
有什么问题可以联系我,嘻嘻~~
