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" onchange="selectASmallcategories(this.value)">
</html:select>
</TD>
<TD class=title>区县码: </TD>
<TD class=input><html:select property="orgcde" styleClass="common">
</html:select>
</TD>
</TR>
有什么问题可以联系我,嘻嘻~~