src=''>
src=' "/dwr/interface/RssReader.js") %>'>
其中的renderRequest和renderResponse是Liferay Portal添加到jsp中的隐含变量,负责对Portlet进行渲染。renderRequest.getContextPath()就是当前jsp的路径,加上js相对于jsp的路径,最后要用renderResponse.encodeURL()方法解码一下才能得到正确的路径。
其他方面,DWR的使用方法就和在一般的jsp中的使用方法一样了。从这里也可以看出,不光是使用DWR,所有对js及其他资源的引用都要用这种方法。
如何实现DWR的多人同时开发
这几天研究了一下DWR,觉的有了这个东东后,Ajax就非常Easy了,可以说是不用学了,我用的是1.1.1的版本,2.0的版本目前还在开发,具体的网址是http://getahead.ltd.uk/dwr/documentation,里面说的很简单,对Web开发比较熟的化,一天就能全学会,不过要做好的话,还是需要在工作中遇到具体的问题再具体解决,再和Spring和Hibernate一结合的化,感觉能大大加快开发进度,现在主要说说如何配置多个dwr.xm,这样的化就可以多个人同时开发,互不影响,这对公司的版本控制还是比较有益处的.
主要是在web.xml中配置
dwr-user-invoker
uk.ltd.getahead.dwr.DWRServlet
config-user
WEB-INF/dwr-user.xml
debug
true
dwr-admin-invoker
uk.ltd.getahead.dwr.DWRServlet
config-admin
WEB-INF/dwr-admin.xml
debug
true
dwr-admin-invoker
/dwradmin/*
dwr-user-invoker
/dwruser/*
这样的话在WEB-INF文件夹下就新增两个XML文件,分别为dwr-user.xml,dwr-admin.xml就行了,然后访问:http://localhost:8080/your app/dwruser就能看到它的测试页面了,把它的javascript文件的存放位置拷下来,放到你的JSP或html文件中,就OK了,我觉的这个测试页主要也就是做这个的,它的一些测试方法,我觉的不是很好用.这样就可以同时有多个XML的配置文件,大家同时开发不影响.
最后记住一点,为了搞明白这一点,花了我一下午和晚上的时间,就是在你的web app目录中,不要创建dwruser或dwradmin这样的目录,更不要把Jsp或html放进去,否则的话,不管用绝对还是相对路径都找不到.
1.新建一个webapp,命名为testApp
2.将dwr.jar拷贝到testApp的WEB-INF的lib目录下
3.编译上面的User,UserDAO,DWRUserAccess类,放到classes目录下
4.在web.xml中配置servlet,适配路径到dwr目录下,如下所示
dwr-invoker
DWR Servlet
Direct Web Remoter Servlet
uk.ltd.getahead.dwr.DWRServlet
debug
true
scriptCompressed
false
1
dwr-invoker
/dwr/*
以上的配置可以拦截testApp下所有指向dwr的请求,关于这个拦截器,我们会在后面介绍。
5.WEB-INF下新建一个dwr.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
ttp://www.getahead.ltd.uk/dwr/dwr10.dtd">http://www.getahead.ltd.uk/dwr/dwr10.dtd">
这里我们把DWRUserAccess配置到了dwr中,create元素中,creater="new"表示每调用一次DWRUserAccess时,需要new一个这样的类;javascript="DWRUserAccess",表示提供给前台页面调用的javascirpt文件是DWRUserAccess.js。
convert元素用于数据类型转换,即java类和javascript之间相互转换,因为和前台交换的是User对象,因此需要对此使用bean转换,我们将在后面介绍这个类。
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7776670/viewspace-911177/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7776670/viewspace-911177/