继DWR学习笔记之练习(dwr 2 + spring 2)

DWR 2 与 Spring 2融合后与前面DWR学习笔记之中主要不同的是dwr.xml及Spring xml配置管理文件(applicationContext.xml)的配置

 

具体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="coProCityService">
			<param name="beanName" value="CoProCityService"></param>
		</create>
		<!-- 
		<convert converter="bean" match="com.trade3c.model.register.CoProCityModel"/>
		 -->
	</allow>
</dwr>

 

 

 creator属性的值可以是new,struts,spring......因为此处是整合spring来做的,所以设置成“spring”, javascript="coProCityService" 表示实例转换成javascript语言后以coProCityService命名,前台页面可以通过代码(<script type='text/javascript' xsrc='../../dwr/interface/coProCityService.js'></script>)来调用。param元素的name 属性值可以是class,beanName等,此处用beanName,value得值是定义在applicationContext.xml中某个 bean的id值。

 

4、创建一个实体bean供DWR转换成js 代码

 

 

package com.project.dwr;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

.
.
.

public class CoProCityService extends CountryProvinceCityServiceImp implements CountryProvinceCityService
{
	private Log log = LogFactory.getLog(CoProCityService.class);
	
	public Map<String, String> getCountrys()
	{
		Map<String, String> countryMap = new HashMap<String, String>(); 
		List<CountryMas> countryList = queryCountryByWh(" order by model.pkNo");
		if(countryList != null && countryList.size() > 0)
		{
			for(CountryMas country:countryList)
			{
				countryMap.put(country.getPkNo().toString(), country.getCountryName());
			}
		}
		return countryMap;
	}
	
	public Map<String, String> getProvinces(String countryPkNo)
	{
		Map<String, String> provinceMap = new HashMap<String, String>(); 
		List<ProvinceMas> provinceList = queryProvinceByWh(" where model.countryPkNo="+Long.parseLong(countryPkNo)+" order by model.pkNo");
		if(provinceList != null && provinceList.size() > 0)
		{
			for(ProvinceMas province:provinceList)
			{
				provinceMap.put(province.getPkNo().toString(), province.getProvinceName());
			}
		}
		return provinceMap;
	}
	public Map<String, String> getCities(String provincePkNo)
	{
		Map<String, String> cityMap = new HashMap<String, String>();
		List<CityMas> cityList = queryCityByWh(" where model.provincePkNo="+Long.parseLong(provincePkNo)+" order by model.pkNo");
		if(cityList != null && cityList.size() > 0)
		{
			for(CityMas city:cityList)
			{
				cityMap.put(city.getPkNo().toString(), city.getCityName());
			}
		}
		return cityMap;
	}
		
}

 

5、在applicationContext.xml中配置第4步写的bean 代码

  
  1. ......     
  2. <bean id="CoProCityService" class="com.project.dwr.CoProCityService">    
  3.   <property name="ius">    
  4.    <ref bean="XXXService" />    
  5.   </property>    
  6. </bean>    
  7. ......  

6、在视图页面中调用,主要作用代码如下:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<script type='text/javascript' src='/trade3c/dwr/interface/coProCityService.js'></script>
<script type='text/javascript' src='/trade3c/dwr/engine.js'></script>
<script type='text/javascript' src='/trade3c/dwr/util.js'></script>
<script type="text/javascript">
<!--
	function change1()
	{
		coProCityService.getCountrys(countryList);
		coProCityService.getProvinces(DWRUtil.getValue("countryPkNo"),provinceList);
		coProCityService.getCities(DWRUtil.getValue("provincePkNo"),cityList);
	}
	function countryList(data)
	{
		DWRUtil.removeAllOptions("countryPkNo"); 
   		DWRUtil.addOptions("countryPkNo", data); 
	}
	function change2()
	{
	//	alert("yeye"+DWRUtil.getValue("countryPkNo"));
		coProCityService.getProvinces(DWRUtil.getValue("countryPkNo"),provinceList);
		coProCityService.getCities(DWRUtil.getValue("provincePkNo"),cityList);
	}
	function provinceList(data)
	{
		DWRUtil.removeAllOptions("provincePkNo"); 
   		DWRUtil.addOptions("provincePkNo", data); 
	}
	function change3()
	{
		coProCityService.getCities(DWRUtil.getValue("provincePkNo"),cityList);
	}
	function cityList(data)
	{
		DWRUtil.removeAllOptions("cityPkNo"); 
   		DWRUtil.addOptions("cityPkNo", data); 
	}
//-->
</script>
<body οnlοad="change1();">

  <select id="countryPkNo" name="countryPkNo" οnchange="change2();"></select>

  <select id="provincePkNo" name="provincePkNo" οnchange="change3();"></select>

 <select id="cityPkNo" name="cityPkNo">
</body>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值