一 DWR配置
1、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>ajaxDWR</display-name>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<description></description>
<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>
</web-app>
2、dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="ServiceArea">
<param name="class" value="onlyfun.caterpillar.Service" />
</create>
<create creator="new" javascript="Office">
<param name="class" value="onlyfun.caterpillar.Office" />
</create>
<!--可以将js对象转换为Java-->
<convert converter="bean" match="onlyfun.caterpillar.Person" />
</allow>
</dwr>
/**
*Java对象转换为JS对象,用JS调用Java的方法
*
*/
function change(){
var objSelect=document.getElementById('mySelect');
var index = objSelect.selectedIndex;
if(index >= 0 ) {
ServiceArea.getOptions(index,result);
}
}
function result(list){
DWRUtil.removeAllOptions("city");
DWRUtil.addOptions("city", list);
}
/**
*Java对象转换为JS对象,用JS调用Java的方法
*
*/
function fun(){
var person = {id:2,name:"emily",age:22};
alert(person);
Office.setPerson(person);
}
<body>
城市: <select id="mySelect" onchange="change()">
<option id=0 value="0">please select</option>
<option id=1 value=1>成都</option>
<option id=2 value=2>重庆</option>
</select>
区域: <select id="city">
<option>please select left</option>
</select>
public class Service {
public Object[] getOptions(int id){
List<String> options = new ArrayList<String>();
if (id == 0) {
options.add("please select left");
}
else if(id == 1) {
options.add("锦江区");
options.add("武侯区");
options.add("金牛区");
}
else if(id == 2){
options.add("渝中区");
options.add("渝北区");
options.add("江北区");
}
return options.toArray();
}
}
public class Person {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
public class Office {
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
if(person != null ){
System.out.println("person.name="+person.getName());
System.out.println("person.id="+person.getId());
System.out.println("person.age="+person.getAge());
}
}
}
控制台输出:
person.age=22
person.name=emily
person.id=2
分享到:
相关推荐
### DWR:Java AJAX 应用程序框架详解 #### 一、引言 随着Web技术的发展,用户对网站的交互性和响应速度提出了更高的要求。传统的Web应用开发方式已无法满足这些需求,因此Ajax(Asynchronous JavaScript and XML...
DWR的主要目标是简化AJAX(Asynchronous JavaScript and XML)开发,使得开发者能够轻松地在浏览器中调用服务器上的Java方法,就像调用本地JavaScript函数一样。这个技术极大地提升了用户体验,因为数据可以在不刷新...
2. **自动序列化**:DWR 可以自动处理数据序列化工作,将 Java 对象转换为 JSON 格式,方便前端使用。 3. **错误处理与调试**:提供了一套完善的错误处理机制,支持调试模式,便于开发者定位问题。 4. **安全性**:...
通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端的通信变得更为便捷。 **整合SpringBoot与DWR** 1. **添加依赖**:在SpringBoot项目的`pom....
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端的Java对象进行直接交互,从而实现Ajax(Asynchronous JavaScript and XML)应用。这个技术使得开发者能够轻松地构建动态、交互性强的...
2. 返回Map:Java端创建Map并填充分配好的键值对,通过DWR调用返回。在JavaScript端,这将表现为一个JavaScript对象,其中的属性名对应于Map的键,属性值对应于Map的值。 五、获得DWR上下文代码 DWR上下文(DWR...
这个“dwr-任何java类-测试”主题着重于如何利用DWR来调用Java类的方法并在前端JavaScript中显示结果。 首先,我们需要理解DWR的工作原理。DWR通过创建一个JavaScript接口,该接口映射到服务器上的Java类和方法。...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许Web应用程序在客户端的JavaScript和服务器端的Java之间进行直接的、异步的通信,实现了Web应用中的Ajax功能。DWR通过自动化处理JavaScript和Java之间的类型...
DWR简化了AJAX(Asynchronous JavaScript and XML)应用的开发,使得开发者可以方便地在JavaScript中直接调用Java方法,仿佛它们是本地函数一样。 在"TestDwr"这个压缩包中,我们可以预期包含了一个简单的DWR实例,...
1. **配置DWR**:首先,在Java项目中集成DWR,添加DWR库,然后配置DWR的Context配置文件(如dwr.xml),定义允许JavaScript调用的Java类和方法。 2. **创建Java服务**:在Java后端编写需要暴露给前端的方法,这些...
**DWR(Direct Web Remoting)**是一种Java技术,它允许JavaScript在客户端直接调用服务器端的Java方法,实现浏览器与服务器之间的实时交互。DWR的出现极大地简化了Web应用中的AJAX(Asynchronous JavaScript and ...
在提供的压缩包中,`js与java相互调用.docx`文档可能详细阐述了如何设置和使用DWR实现Java和JavaScript的交互,包括配置步骤、示例代码和最佳实践。建议仔细阅读这份文档,以深入理解DWR的工作原理和实际应用。 ...
- **响应**:Java方法执行完成后,结果会被转化为JavaScript对象并返回给客户端。 3. **DWR配置** 在服务器端,首先需要在Web应用的类路径下创建`dwr.xml`配置文件,列出允许客户端调用的Java类和方法。例如: `...
DWR(Direct Web Remoting)是一个开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信,从而实现动态、实时的Web应用交互。DWR简化了Ajax开发,使得开发者能够轻松地调用服务器端的...
DWR,全称Direct Web Remoting,是一种在Web应用程序中实现客户端JavaScript与服务器端Java代码之间直接交互的开源框架。它旨在简化远程方法调用(Remote Method Invocation,RMI)的过程,使得在浏览器环境中可以像...
DWR允许Java服务器端代码与JavaScript在客户端直接通信,使得Web应用可以像桌面应用一样实时更新,而无需刷新整个页面。 **一、DWR简介** DWR(Direct Web Remoting)是一个开源框架,它简化了Java服务器与...
Java DWR(Direct Web Remoting)是一个开源框架,它允许JavaScript和Java在Web应用程序中进行交互,实现异步通信,即Ajax(Asynchronous JavaScript and XML)功能。DWR简化了客户端与服务器端之间的数据交换,使得...
dwr(Direct Web Remoting)是一种基于Ajax技术的远程调用框架,提供了一个简单的方式来访问Java对象,实现了服务器推技术。dwr框架的主要特点是可以将Java对象暴露给客户端,实现了实时通信的功能。 二、dwr 框架...