无聊人士
搬家==》
www.soapui.cn
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
32 随笔 :: 0 文章 :: 60 评论 :: 0 Trackbacks
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(10)
给我留言
查看公开留言
查看私人留言
随笔分类
Database(1)
(rss)
Groovy(2)
(rss)
Hibernate(3)
(rss)
iBatis
(rss)
O/R Broker(3)
(rss)
Others(7)
(rss)
Spring(1)
(rss)
WebWork、Struts2、FreeMarker(7)
(rss)
报表(Birt、crystal。。)(5)
(rss)
系统管理(7)
(rss)
随笔档案
2007年4月 (4)
2007年3月 (1)
2006年11月 (2)
2006年10月 (4)
2006年9月 (3)
2006年8月 (1)
2006年5月 (1)
2006年3月 (1)
2006年2月 (2)
2005年12月 (5)
2005年11月 (8)
BLOG
(郁也风)一地鸡毛
(rss)
(郁也风)重拾技术的乐趣
Fantasy Soft
(rss)
java in my life
(rss)
jboss rules
Java自由人
(rss)
KINGFISH和蜗牛的家
(rss)
scud(飞云小侠)
(rss)
Water Ye@ITO
(rss)
www.soapui.cn
(rss)
三十乱弹
(rss)
地狱男爵之博客无限
(rss)
差沙的密码 -- SSHWSFC's code
(rss)
成都心情(Full Speed)
(rss)
学而不思则罔,思而不学则殆。——《论语·为政》
江南白衣@ITO
(rss)
疯狂机器
(rss)
邢红瑞的blog
(rss)
LINK
BI立方体-商业智能社区
springside
(rss)
http://www.springside.org.cn
搜索
最新评论
1. re: hibernate.hbm2ddl.auto与import.sql
在classpath中扔一个/import.sql进 是什么意思啊
我的qq 1078435142
--ww
2. re: hibernate.hbm2ddl.auto与import.sql[未登录]
在classpath中扔一个/import.sql进 是什么意思啊
我的qq1450751458
--aaa
3. re: 刘冬文章“Java虚拟机的最大内存是多少 ”测试[未登录]
评论内容较长,点击标题查看
--Michael
4. 关于MXParserFactory异常
评论内容较长,点击标题查看
--qianyuanyuan
5. re: 利用birt2.1.2的IRunAndRenderTask.addScriptableJavaObject在birt中调用spring bea
怎样才能在Java类中得到birt参数的值啊
--ff
阅读排行榜
1. xfire 1.0 终于final了(11100)
2. 接触xfire(7731)
3. 刘冬文章“Java虚拟机的最大内存是多少 ”测试(6397)
4. 接触DWR(6392)
5. hibernate.hbm2ddl.auto与import.sql(5752)
评论排行榜
1. xfire 1.0 终于final了(13)
2. 接触xfire(12)
3. 接触DWR(8)
4. 刘冬文章“Java虚拟机的最大内存是多少 ”测试(5)
5. 在birt2.1.2中显示条形码(4)
接触DWR
需求很简单,就是用js向后端请求,然后把请求的结果弄进一个select里面。一开始是用xmlrequest去请求后端一个groovy的url,得到一个xml,然后把xml的内容填进select里面去。做完老瞅着不顺眼,正好在看ajax的资料,拿dwr改造一下。
js是我一直很头疼的事了,尤其是对dom的操作上面,dwr感觉就是在直接调java接口,操作java对象,省事省心啊。
用dwr,先得在web.xml中配一下。
1
<
servlet
>
2
<
servlet-name
>
dwr-invoker
</
servlet-name
>
3
<
servlet-class
>
uk.ltd.getahead.dwr.DWRServlet
</
servlet-class
>
4
<
init-param
>
5
<
param-name
>
debug
</
param-name
>
6
<
param-value
>
true
</
param-value
>
7
</
init-param
>
8
</
servlet
>
9
<
servlet-mapping
>
10
<
servlet-name
>
dwr-invoker
</
servlet-name
>
11
<
url-pattern
>
/dwr/*
</
url-pattern
>
12
</
servlet-mapping
>
13
然后就是配dwr.xml文件了。
dwr和spring贴得比较紧,不用折腾,直接让dwr去调spring中定义的bean了。
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"
>
3
<
dwr
>
4
<
allow
>
5
<
create
javascript
="ServerManager"
creator
="spring"
>
6
<
param
name
="beanName"
>
ServerManager
</
param
>
7
</
create
>
8
</
allow
>
9
</
dwr
>
10
我的project中,已经在web.xml中配了spring的listener,直接写beanName就行。
在ServerManager接口中定义了如下方法
List<Server> loadAll(User manager, ServerStatus status, String order);
因此,在dwr中定义了三个convert(一开始没配,结果怎么调都不成功)。
1
<
convert
converter
="bean"
match
="com.yninfo.sa.domain.Server"
/>
2
<
convert
converter
="bean"
match
="com.yninfo.sa.domain.ServerStatus"
/>
3
<
convert
converter
="bean"
match
="com.yninfo.sa.domain.User"
/>
loadAll方法中的manager参数,是用户登录成功后,session.setAttribute("user",user)存放的。在html里面,用js是无法读到的,因此,自己定义了一个java bean。
1
public class Remote
{
2
public User getUser(HttpSession session)
{
3
return
(User) session.getAttribute(
"
user
"
);
4
}
5
}
6
同样的,在dwr中配了一下
1
<
create
javascript
="Remote"
creator
="new"
>
2
<
param
name
="class"
value
="com.yninfo.sa.web.ajax.Remote"
/>
3
</
create
>
所有配置完成后,js代码如下:
1
<
script type
=
'text
/
javascript' src
=
'dwr
/
interface
/
Remote.js'
></
script
>
2
<
script type
=
'text
/
javascript' src
=
'dwr
/
interface
/
ServerManager.js'
></
script
>
3
<
script type
=
'text
/
javascript' src
=
'dwr
/
engine.js'
></
script
>
4
<
script type
=
'text
/
javascript' src
=
'dwr
/
util.js'
></
script
>
5
<
script
>
6
function
init()
{
7
Remote.getUser(
8
function
(user)
{
9
ServerManager.loadAll(user,
null
,
null
,load);
10
}
);
11
}
12
function
load(data)
{
13
for
(
var
i
=
0
; i
<
data.length; i
++
)
{
14
document.DailyRecordAdd.elements[
"
model.serverId
"
].options[i]
=
15
new
Option(data[i].name,data[i].id);
16
}
17
}
18
window.onload
=
function
()
{
19
init();
20
}
21
</
script
>
最终的配置文件:
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"
>
3
<
dwr
>
4
<
allow
>
5
<
create
javascript
="ServerManager"
creator
="spring"
>
6
<
param
name
="beanName"
>
ServerManager
</
param
>
7
<
include
method
="add"
/>
8
<
include
method
="findByPrimaryKey"
/>
9
<
include
method
="loadAll"
/>
10
</
create
>
11
<
create
javascript
="Remote"
creator
="new"
>
12
<
param
name
="class"
value
="com.yninfo.sa.web.ajax.Remote"
/>
13
</
create
>
14
<
convert
converter
="bean"
match
="com.yninfo.sa.domain.User"
/>
15
<
convert
converter
="bean"
match
="com.yninfo.sa.domain.Server"
/>
16
<
convert
converter
="bean"
match
="com.yninfo.sa.domain.ServerStatus"
/>
17
</
allow
>
18
</
dwr
>
19
posted on 2005-12-05 00:04
mmwy
阅读(6392)
评论(8)
编辑
收藏
所属分类:
Others
评论
#
re: 接触DWR
2006-09-21 22:02
java-man
不错~顶一个
回复
更多评论
#
re: 接触DWR
2006-11-09 16:27
锅巴—new
问个问题,在web.xml中配置以后,系统会自动的去找dwr.xml,然后解读里面的内容,是这样吗?不需要其他的配置?
回复
更多评论
#
re: 接触DWR
2006-11-22 16:18
loook123
dwr 是个好东西
回复
更多评论
#
re: 接触DWR
2006-12-05 23:51
Mars
您好,我刚学DWR,可以请教一个问题么?
我在本机Windows调试完全成功,放到Lunix虚拟服务器上就报DWRUtil is not defined错误,请问您遇到过类似情况么?有方法解决么?
回复
更多评论
#
re: 接触DWR
2007-04-09 19:40
晓松
多谢指点啊
回复
更多评论
#
re: 接触DWR
2007-04-17 09:46
johnrobbet
我觉得是你配置上的问题
@Mars
回复
更多评论
#
re: 接触DWR
2007-04-28 17:23
qq
挺好,学习
回复
更多评论
#
re: 接触DWR
2008-10-29 18:49
ja
恩,清晰
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
利用birt2.1.2的IRunAndRenderTask.addScriptableJavaObject在birt中调用spring bea
Birt 2.1.1中table row背景颜色交替显示
Birt 2.1.1 DataSet利用报表参数动态查询
xfire 1.0 终于final了
刘冬文章“Java虚拟机的最大内存是多少 ”测试
接触xfire
接触DWR
Powered by:
BlogJava
Copyright © mmwy