SSH DWR省市县三级联动-后台控制,DWR配置,页面实现,源码下载

2 篇文章 0 订阅
2 篇文章 0 订阅

三、编写后台控制代码

(一)实现业务逻辑层

1. 编写接口类ProvinceDao

package com.ssh.dao;

import java.util.List;
import com.ssh.po.Province;
/**
 * ProvinceDao接口,定义要实现的方法
 * 
 * @author nnhym
 *
 */

public interface ProvinceDao {
	
	public Province findProvinceById(Integer id);
	public Province findProvinceByExample(Province person);
	public List findAllProvince();
	public List findProvinceByParentid();
	public List findProvinceByIdAndParentid(Integer id);

}

2.编写ProvinceDao接口的实现类ProvinceDaoImpl

package com.ssh.dao;

import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.ssh.po.Province;
/**
 * 实现ProvinceDao接口中定义的方法
 * 
 * @author nnhym
 *
 */
public class ProvinceDaoImpl extends HibernateDaoSupport implements ProvinceDao {

	public List findAllProvince() {
		
		List<Province> list=null;
		try {
			list=getHibernateTemplate().find("from Province");
		} catch (DataAccessException e) {
			System.out.println("==>1.查询所有的省市时出错:");
			e.getStackTrace();
		}
		return list;
	}

	public Province findProvinceByExample(Province person) {
		// TODO Auto-generated method stub
		return null;
	}

	public Province findProvinceById(Integer id) {
		// TODO Auto-generated method stub
		return (Province) getHibernateTemplate().get(Province.class, id);
	}

	public List findProvinceByParentid() {

		List<Province> list=null;
		try {
			list=getHibernateTemplate().find("from Province p where p.parentid=0");
		} catch (DataAccessException e) {
			System.out.println("==>2.查询所有的省市时出错:");
			e.getStackTrace();
		}
		return list;
	}

	public List findProvinceByIdAndParentid(Integer id) {

		List<Province> list=null;
		try {
			list=getHibernateTemplate().find("from Province p where p.parentid="+id);
		} catch (DataAccessException e) {
			System.out.println("==>3.查询所有的省市时出错:");
			e.getStackTrace();
		}
		return list;
	}

}

(二)实现数据访问层

1.实现接口类ProvinceService

package com.ssh.service;

import java.util.List;
import com.ssh.po.Province;
/**
 * 定义要实现那些Service方法
 * 
 * @author nnhym
 *
 */

public interface ProvinceService {
	
	Province findProvinceById(Integer id);
	List findProvinceByParentId();
	List findProvinceByAll();
	List findProvinceByIdAndParentId(Integer id);
}

2.定义ProvinceService接口的实现类ProvinceServiceImpl

package com.ssh.service;

import java.util.List;
import com.ssh.dao.ProvinceDao;
import com.ssh.po.Province;
/**
 * 实现service接口中定义的方法
 * 
 * @author nnhym
 *
 */

public class ProvinceServiceImpl implements ProvinceService {
	
	ProvinceDao provinceDao;
	
	public ProvinceDao getProvinceDao() {
		return provinceDao;
	}

	public void setProvinceDao(ProvinceDao provinceDao) {
		this.provinceDao = provinceDao;
	}

	public List findProvinceByAll() {
		// TODO Auto-generated method stub
		return provinceDao.findAllProvince();
	}

	public Province findProvinceById(Integer id) {
		// TODO Auto-generated method stub
		return provinceDao.findProvinceById(id);
	}

	public List findProvinceByParentId() {
		// TODO Auto-generated method stub
		return provinceDao.findProvinceByParentid();
	}

	public List findProvinceByIdAndParentId(Integer id) {
		// TODO Auto-generated method stub
		return provinceDao.findProvinceByIdAndParentid(id);
	}

}

(三)在Spring中配置JavaBean

业务逻辑层和数据访问层编写完成以后就要在Spring中配置他们的关系

<!-- 配置provinceDao -->
		<bean id="provinceDao" class="com.ssh.dao.ProvinceDaoImpl">
			<property name="sessionFactory">
				<ref local="sessionFactory"/>
			</property>
		</bean>
		
<!-- 配置provinceService -->
		<bean id="provinceService" class="com.ssh.service.ProvinceServiceImpl">
			<property name="provinceDao">
				<ref local="provinceDao"/>
			</property>
		</bean>


(四)配置DWR

1.从DWR官方网站(http://directwebremoting.org/dwr/)上下载最新的dwr.jar包放入WebRoot/WEB-INF/lib目录下

2.在WebRoot/WEB-INF新建一个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="province">  
	     	<param name="beanName" value="provinceService"/>  
	    </create>
	    <convert match="com.ssh.po.Province" converter="bean"></convert>
	</allow>
</dwr>

3.在web.xml文件中配置dwr

<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>
	</servlet>

<servlet-mapping>
  	<servlet-name>dwr-invoker</servlet-name>
  	<url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

4.配置完成以后,将项目部署到Tomcat中。在浏览器中输入地址:http://localhost:8080/Test/dwr会出现如下页面,可以测试我们实现的方法是否正常

四、页面的实现

1.在jsp页面中配置dwr

通过测试页面我们可以看到,需要在jsp页面中添加如下配置:

<script type='text/javascript' src='/Test2/dwr/engine.js'></script>
<script type='text/javascript' src='/Test2/dwr/util.js'></script>
<script type='text/javascript' src='/Test2/dwr/interface/province.js'></script>

2.编写js

$(function() {
		dwr.engine.setAsync(false);
		getProvinceList();
		getCityList();
		getCountyList();
	});

	function getProvinceList() {
		province.findProvinceByParentId({
			callback : function(provincelist) {
				dwr.util.removeAllOptions("sel_Pro");
				dwr.util.addOptions("sel_Pro", [ {
					name : "-请选择-",
					value : "0"
				} ], "value", "name");
				dwr.util.addOptions("sel_Pro", provincelist, "id",
						"name");
			},
			timeout : 5000
		});
	}

	function getCityList() {
		province.findProvinceByIdAndParentId(dwr.util.getValue("sel_Pro"), {
			callback : function(citylist) {
				dwr.util.removeAllOptions("sel_City");
				dwr.util.addOptions("sel_City", [ {
					name : "-请选择-",
					value : "0"
				} ], "value", "name");
				dwr.util.addOptions("sel_City", citylist, "id", "name");
			},
			timeout : 5000
		});
	}
	
	function getCountyList() {
		province.findProvinceByIdAndParentId(dwr.util.getValue("sel_City"), {
			callback : function(citylist) {
				dwr.util.removeAllOptions("sel_County");
				dwr.util.addOptions("sel_County", [ {
					name : "-请选择-",
					value : "0"
				} ], "value", "name");
				dwr.util.addOptions("sel_County", citylist, "id", "name");
			},
			timeout : 5000
		});
	}

五、测试页面

到此,三级联动的程序已经完成,测试页面如下


上一篇,知识简介,环境搭建:

http://blog.csdn.net/lingnnhym/article/details/7035405


源码下载:

省市县三级联动数据库(MySQL)

SSH DWR省市县三级联动源码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值