根据选中的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
分享到:
相关推荐
通过学习这些资料,开发者不仅可以掌握DWR的基本使用,还能了解到如何在实际项目中集成和优化DWR,提升Web应用的交互性和实时性。在实践中,需要注意DWR的安全设置,例如防止跨站脚本攻击(XSS)和跨站请求伪造...
本项目是基于Servlet和DWR的实现,旨在提供一个简单但功能齐全的范例,展示如何在实际应用中使用DWR。 首先,理解DWR的基本概念至关重要。DWR是一种开源框架,它在浏览器和服务器之间创建了一种透明的远程方法调用...
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器...通过深入学习这份DWR中文文档,开发者不仅可以掌握DWR的基本用法,还能了解到如何在实际项目中有效利用DWR提升Web应用的性能和用户体验。
通过这个简单的DWR演示项目,你可以深入理解DWR的工作原理,掌握如何配置DWR、编写可被客户端调用的Java方法,以及如何在JavaScript中使用这些方法。这对于想要学习和使用DWR来构建动态Web应用的初学者来说是一个很...
在本文中,我们将深入探讨DWR的使用方法,以及如何将其纳入到您的项目中。 首先,我们需要理解DWR的核心组件: 1. **Engine**:这是DWR的核心,负责处理所有与远程调用相关的事务,包括JavaScript到Java的转换、...
1. **引入DWR库**:在项目中添加dwr.jar,这是DWR的核心库,包含了所有必要的类和接口。 2. **创建Java类**:定义你需要在客户端调用的Java方法。例如,创建一个名为`Citys`的类,包含获取省份和城市的列表的方法。...
dwr框架在项目中的使用, 一个sprig3+dwr3+jpa+struts2,基于注解的完整demo 一个sprig2+dwr2+hibernate3+struts1,基于配置文件的完整demo http://blog.csdn.net/zuxianghuang/article/details/7376247
**DWR(Direct Web Remoting)技术文档** DWR,全称Direct Web Remoting,是一种在Web应用程序中实现...通过理解其核心功能、配置步骤以及使用流程,开发者可以快速地在项目中引入DWR,构建高效、动态的Web应用。
1. **引入dwr.jar** - 将DWR的jar包添加到项目的lib目录下,这是使用DWR的基础,因为该jar包包含了DWR的所有核心类和函数。 2. **创建dwr.xml** - 在WEB-INF目录下创建dwr.xml配置文件。这个文件用于配置DWR的行为...
资源名称:适合初学者的DWR基本使用视频教程资源目录:【】dwr01_dwr的安装【】dwr02_dwr的转换器和异常处理【】dwr03...dwr06_dwr在项目中的运用资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
在这个"简单使用DWR完整例子"中,我们将深入理解DWR的基本概念、配置、以及如何在SSH(Spring、Struts、Hibernate)技术框架下集成和应用DWR。 首先,了解DWR的核心概念至关重要。DWR通过JavaScript API使得Java...
10. **集成其他框架**:DWR可以很好地与Spring、Struts等Java Web框架集成,使得在这些框架中使用DWR变得简单。 在阅读这份中文文档时,你可以深入理解DWR的工作原理,学习如何配置和使用DWR,以及如何在实际项目中...
4. **生成JavaScript API**:DWR会根据配置自动生成JavaScript API,这些API可以直接在浏览器中使用,调用服务器端的方法。 5. **前端调用**:在HTML或JavaScript代码中,引入DWR生成的JavaScript文件,然后就可以...
DWR使用笔记.chm:这可能是一份详细的DWR使用手册,包含了如何集成DWR到项目中、配置DWR引擎、创建远程接口以及处理各种交互的实例。通过阅读这份笔记,你可以了解到DWR的基本概念、配置步骤以及实际应用技巧。 dwr...
7. **压缩包子文件的文件名称列表:“java使用ajax”**:这可能意味着压缩包中包含了一些关于Java和AJAX交互的示例代码或教程,这些文件可能详细展示了如何在Java应用程序中使用AJAX,或者可能是DWR框架的具体实现...
6. **DWR与SSM的结合**:在Action或Service中,可以使用DWR暴露的方法,使得前端可以通过JavaScript直接调用后端的方法,实现实时的数据更新。 7. **前端页面**:使用JavaScript和DWR API,前端可以动态地向服务器...
- 在Java项目中引入DWR库,通常通过Maven或Gradle添加依赖。 - 配置DWR的`dwr.xml`文件,定义允许的远程方法和类,这是DWR的核心配置文件,用于控制哪些Java对象和方法可以被JavaScript访问。 2. **创建Java...
#### DWR中的JavaScript - **简单的回调函数**:介绍如何使用DWR进行异步调用,并在调用完成后执行回调函数。 - **调用元数据对象**:元数据对象包含关于服务和方法的信息,可以用来动态生成客户端调用代码。 DWR...
4. **添加DWR依赖**:将下载的DWR库文件添加到项目的类路径中。 5. **编写Java服务端代码**: - 创建一个简单的Java类,例如`HelloWorldService`,定义一个公开的方法,如`sayHello()`。 - 使用DWR注解标记该方法...
在原版DWR中,这些资源可能通过类路径或者特定的URL路径来获取,但在Spring Boot的独立JAR模式下,类路径的解析方式与传统的Java应用不同,这可能导致DWR无法正确找到并加载资源。 为了解决这个问题,修改版的DWR ...