1. 加入 dwr 包
2. 配置 web.xml
< servlet >
< servlet-name > dwr-invoker </ servlet-name >
< servlet-class > uk.ltd.getahead.dwr.DWRServlet </ servlet-class >
< init-param > <!—dwr 测试 默认为 false ,只有测试的情况下才为 true-->
< 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 >
3. 创建 dwr.xml
创建时要与 web.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 >
<!—-
如果用 spring, 那么配置如下:
< create javascript = "userAction" creator = "spring" >
< param name = "beanName" value = "framBaseUserService" />
// framBaseUserService 是 spring 中配置的 id, 进行依赖住入
</ create >
-->
<!—class 配置:
test.DWRUserAccess DWRUserAccess =new test.DWRUserAccess ();
DWRUserAccess 对时在 js 用这个名称调用 test.DWRUserAccess 类中的方法。
-->
< create creator = "new" javascript = "DWRUserAccess" >
< param name = "class" value = "test.DWRUserAccess" />
</ create >
<!— 类型转换 -->
< convert converter = "bean" match = "test.User" />
</ allow >
<!— 对 map 进行转换 -->
< signatures >
<![CDATA[
import java.util.Map;
import test.DWRUserAccess;
User.getMap(Map<String, User> map);
]]>
</ signatures >
</ dwr >
4. 页面调用、
1 . 测试
直接访问路径:
http://127.0.0.1:8080/ 项目名 /dwr
2. 页面调用
function OnSave() {
DWRUserAccess. 方法 ( 参数 ,getmag);
}
Function getmag(mag)
{
Alert(mag);
}
5. 1. 因为在做项目时只加 dwr 包,就报缺少包,所以要加上 commons-logging-1.0.4 包。
2. 如果真正发布项目时,为了项目安全,要把 web.xml 中的测试设置为 false, 默认就为 false ,也可以直接去掉。
3. 因为 dwr 也是调用 biz 层也就是 service ,而 struts 也是调用 biz 层,所以一般情况下,不要考虑用 dwr 调用 action 。
4.dwr 的优势:像使用 js 本地函数一样,去调用服务器 java 中的方法,无须用 json 去转换返回的对象或数组。