`
uule
  • 浏览: 6308201 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

项目中dwr的使用

    博客分类:
  • DWR
阅读更多

根据选中的country获取其city:

 

web.xml:

    <servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<init-param>
			<param-name>classes</param-name>
			<param-value>
				com.techson.himsnanhwa.admin.dwr.AgentEvent,
				com.techson.himsnanhwa.admin.dwr.CitiesEvent
			</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>false</param-value>
		</init-param>
		<init-param>
			<param-name>activeReverseAjaxEnabled</param-name>
			<param-value>false</param-value>
		</init-param>
		<init-param>
			<param-name>initApplicationScopeCreatorsAtStartup</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>maxWaitAfterWrite</param-name>
			<param-value>500</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
  	</servlet>
  	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
  	</servlet-mapping>

  <script type='text/javascript'   src='<%=basePath%>dwr/interface/AreaEvent.js'></script>
        <script type='text/javascript' src='<%=basePath%>dwr/engine.js'></script>
        <script type='text/javascript' src='<%=basePath%>dwr/util.js'></script>

 

function doCountryChange(){
			var countrycode = $("areaBean.countrycode").value;
			initTonull(document.getElementById("areaBean.citycode"));
			if(countrycode == "") return;

			initTonull(document.getElementById("citycode"));
			//每次改变之前必须先清空

			AreaEvent.getcityBycountrycode(countrycode,{
				callback:backGetCity,
				timeout:180000,
				errorHandler:function(message) { alert("Oops: " + message);}
			});
		}

 

function backGetCity(citiesList){			
			if(citiesList == null || citiesList.length == 0) return;
			var obj = document.getElementById("areaBean.citycode");

			for(var index = 0;index < citiesList.length; index ++){
				var item = citiesList[index];
				var txt = item.citynameEn;
				if(item.citynameTw != ''){
					txt = txt + " - " + item.citynameTw;
				}
				var vv = item.citycode;
				var oOption	= new Option(txt, vv);
				var ii = index + 1;
				obj.options[ii] = oOption;
			}
		}

 AreaEvent.java类:

@RemoteProxy
public class AreaEvent {
	private static Log log = LogFactory.getLog(AreaEvent.class);	
	
	@RemoteMethod
	public List<Map<String,Object>> getcityBycountrycode(String countrycode,HttpSession session) throws Exception{
		List<Cities> list = (List<Cities>)session.getServletContext().getAttribute(MyConstants.CITIES_KEY);
		countrycode = countrycode.trim().toUpperCase();
		List<Map<String,Object>> cityList = new ArrayList<Map<String,Object>>();
		List<Cities> clist = new ArrayList<Cities>();
		if(list != null){
			for (Cities cities : list) {
				String cocode = cities.getCountrycode().trim().toUpperCase();
				if(!cocode.equalsIgnoreCase(countrycode)) continue;
				clist.add(cities);
			}
			Collections.sort(clist, new CitiesComparator.CityNameComparator());
			for (Cities cities : clist) {
				Map<String,Object> cityMap = new HashMap<String,Object>();
				cityMap.put("citycode", cities.getCitycode());
				cityMap.put("citynameEn", cities.getCitynameEn());
				cityMap.put("citynameTw", cities.getCitynameTw());
				cityList.add(cityMap);
			}
		}
		return cityList;
	}
}

 

function initTonull(obj){		
		if ( !obj || obj.options.length <= 0 )
			return;
		for ( var i = obj.options.length; i > 0; i-- ){					  	
		  		obj.options[i] = null;
		}
	}

 ..

 

2 、

CityEvent.getAirlineByCode(citycode,
			{
				callback:afterEvent,
				timeout:60000,
				errorHandler:function(message) { alert("Oops: " + message);}
			});

 

function afterEvent(obj){
		hideProcessing();
		if(obj != null){
			showDiv();
			$("id").value = obj.cityCode;
			$("citiesBean.cityCode").value = obj.cityCode;
			$("countryCode").value = obj.countryCode;
			$("citiesBean.cityName").value = obj.cityName;
			$("citiesBean.cityNameTc").value = obj.cityNameTc;
			$("citiesBean.cityNameTw").value = obj.cityNameTw;
			$("citiesBean.cityCode").disabled=true;
			var check1 = obj.isPackage;
			if(check1 == true){
				$("check1").checked = true;
			}else{
				$("check1").checked = false;
			}
					}else{
			alert("@TW出錯了.請再來一次@@CN出错了.请再来一次@@ENError.Please try again@.");
		}		
	}

 

public class CityEvent {
	private static Log log = LogFactory.getLog(CityEvent.class);

	@RemoteMethod
	public Map<String,Object> getAirlineByCode(String code,HttpSession session) throws Exception{
		WebApplicationContext webApplicationContext = (WebApplicationContext) session.getServletContext().getAttribute("WEBAPPLICATIONCONTEXT");
		CitiesFacade citiesFacade = (CitiesFacade)webApplicationContext.getBean("citiesFacade");
		Cities cities = citiesFacade.findByCode(code);
		Map<String,Object> citiesMap = new HashMap<String,Object>();
		if(cities != null){
			citiesMap.put("cityCode", cities.getCityCode() == null ?"":cities.getCityCode());
			citiesMap.put("countryCode", cities.getCountries()==null ? "" :cities.getCountries().getCountryCode());
			citiesMap.put("cityName", cities.getCityName() == null?"":cities.getCityName());
			citiesMap.put("cityNameTc", cities.getCityNameTc() == null?"":cities.getCityNameTc());
			citiesMap.put("cityNameTw", cities.getCityNameTw() == null?"":cities.getCityNameTw());
			citiesMap.put("stateId", cities.getStateId() == null?"":cities.getStateId());
			citiesMap.put("isPackage", cities.getIsPackage());
			citiesMap.put("isHotel", cities.getIsHotel());
			citiesMap.put("isAir", cities.getIsAir());
			citiesMap.put("isTour", cities.getIsTour());
			return citiesMap;
		}else{
			return null;
		}
	}
}

 ...

 

 

 

 

 

 

  • 大小: 5.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics