`
sbfivwsll
  • 浏览: 64382 次
  • 性别: Icon_minigender_1
  • 来自: 四川
社区版块
存档分类
最新评论

DWR通过Annotation与spring整合

 
阅读更多

 

DWR 2.0 增加了一个很有趣的新特性,Annotation,因此可以摆脱了dwr.xml里面的配置.同时也可以方便的和spring整合.

从官方网站下载dwr.jar包。然后将它放在你webapp的WEB-INF/lib目录下。 修改web.xml

 


<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->< servlet >
< servlet-name > dwr-invoker </ servlet-name >
< servlet-class >
org.directwebremoting.servlet.DwrServlet
</ servlet-class >
< init-param >
< param-name > debug </ param-name >
< param-value > true </ param-value >
</ init-param >
< init-param >
< param-name > logLevel </ param-name >
< param-value > DEBUG </ param-value >
</ init-param >
< init-param >
< param-name > classes </ param-name >
< param-value >
com.spring.User,com.beans.Book
</ param-value >
</ init-param >
</ servlet >

< servlet-mapping >
< servlet-name > dwr-invoker </ servlet-name >
< url-pattern > /dwr/* </ url-pattern >
</ servlet-mapping >

< context-param >
< param-name > contextConfigLocation </ param-name >
< param-value >
/WEB-INF/beans.xml
</ param-value >
</ context-param >
< listener >
< listener-class >
org.springframework.web.context.ContextLoaderListener
</ listener-class >
</ listener >

 

beans.xml是spring的配置文件.org.springframework.web.context.ContextLoaderListener是一个监听器.

< init-param >
< param-name > classes </ param-name >
< param-value >
com.spring.User,com.beans.Book
</ param-value >
</ init-param >

param-value:参数为被注解的类.

编写相关类
com.beans.Book:

@DataTransferObject(converter=BeanConverter.class)
public class Book{
@RemoteProperty
private Stringname;
@RemoteProperty
private Stringauthor;

public StringgetAuthor(){
return author;
}

public void setAuthor(Stringauthor){
this .author = author;
}

public StringgetName(){
return name;
}

public void setName(Stringname){
this .name = name;
}
}

@DataTransferObject: 标注在客户端和服务器之间转换类.对应dwr.xml中的<convert>标签.
注解的源代码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public@interfaceDataTransferObject
{
/**
*Converterthatconvertsinstanceoftheclass(default:beanconverter).
*/
Class
<?extendsConverter>converter()defaultBeanConverter.class;

/**
*Parametersfortheconverter.
*/
Param[]params()
default{};
}

关于annotation可以看这篇文章,java元数据
@RemoteProperty :标注在类中需要转换的属性.
源代码:

@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public@interfaceRemoteProperty
{
}


如果使用dwr.xml配置,可以这样:

<convertconverter="bean"match="com.beans.Book">
<paramname="include"value="name,author"/>
</convert>


User:

@RemoteProxy(name="user",creator=SpringCreator.class,
creatorParams
={
@Param(name
="beanName",value="user")
})
@DataTransferObject(converter
=BeanConverter.class)
publicclassUser{
@RemoteProperty
privateStringwelcome;
@RemoteProperty
privateStringusername;
@RemoteProperty
privateStringaddress;
@RemoteProperty
privateList<Book>books;
@RemoteProperty
privateintage;

publicStringgetAddress(){
returnaddress;
}

publicvoidsetAddress(Stringaddress){
this.address=address;
}

publicintgetAge(){
returnage;
}

publicvoidsetAge(intage){
this.age=age;
}
@RemoteMethod
publicStringgetUsername(){
returnusername;
}

publicvoidsetUsername(Stringusername){
this.username=username;
}

publicStringgetWelcome(){
returnwelcome;
}

publicvoidsetWelcome(Stringwelcome){
this.welcome=welcome;
}
@RemoteMethod
publicList<Book>getBooks(){
returnbooks;
}

publicvoidsetBooks(List<Book>books){
this.books=books;
}
@RemoteMethod
publicUsergetUser(Stringwelcome){
this.welcome=welcome;
returnthis;
}

}

@RemoteProxy:标注要给远程调用的类.
RemoteProxy的name设置创造出来的对象的名字,creator指定使用那种创造器,例子中使用SpringCreator.creatorParams指定创造器的其他参数.不同的创造器参数是不同的.
@RemoteMethod:标注给远程调用的方法

4.修改beans.xml

<beanid="remote"class="com.spring.Remote"></bean>
<beanid="user"class="com.spring.User"
p:username
="windfree"p:address="anhuihefei"p:age="25">
<propertyname="books">
<list>
<refbean="C"/>
<refbean="java"/>
</list>
</property>
</bean>
<beanid="java"class="com.beans.Book"p:name="java"p:author="mypure"></bean>
<beanid="C"class="com.beans.Book"p:name="C"p:author="zgliu"></bean>

其中p为spring2.0中提供的标签.
5.html页面

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<title>SpringUserInfo.html</title>
<scripttype='text/javascript'src='/DWRExample/dwr/interface/user.js'></script>
<scripttype='text/javascript'src='/DWRExample/dwr/engine.js'></script>
<scripttype='text/javascript'src='/DWRExample/dwr/util.js'></script>
<scripttype="text/javascript">
functiontest(){
user.getUser(
"Hello",callback);
}
varcellFuncs=[
function(data){returndata.name;},
function(data){returndata.author;},
];
functioncallback(user){
//alert(user.books)
DWRUtil.setValue('result',"欢迎你!"+"姓名:"+user.username+",年龄:"+user.age+",住址:"+user.address);
DWRUtil.addRows('tableInfo',user.books,cellFuncs,
{escapeHtml:
false,
rowCreator:
function(options){
varrow=document.createElement("tr");
varindex=options.rowIndex*50;
row.style.color
="rgb("+index+",0,0)";
returnrow;
},
cellCreator:
function(options){
vartd=document.createElement("td");
varindex=255-(options.rowIndex*50);
td.style.backgroundColor
="rgb("+index+",255,255)";
td.style.fontWeight
="bold";
returntd;
}
})
}
</script>


</head>

<body>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<inputid="jbutton"type="button"value="取得信息"onclick="test()"/>
<br>
<divid="result"></div><br>
<tableborder="1">
<thead><tr>
<th>书名</th><th>姓名</th>
</tr></thead>
<tbodyid="tableInfo">
</tbody>
</table>
</body>
</html>

其中使用了util.js中的一些函数.

分享到:
评论

相关推荐

    struts2.1 spring2.5 ibatis2.3 dwr3 annotation配置 集成

    struts2.1 spring2.5 ibatis2.3 dwr3 annotation配置 集成 此中例子不完整. 如要下载:http://download.csdn.net/source/2138885

    spring2.5 ibatis2.3 struts2.1 dwr3 annotation集成配置

    本主题聚焦于一个经典的Java企业级应用架构:Spring 2.5、iBatis 2.3、Struts 2.1 和 DWR 3 的整合,以及使用注解(Annotation)进行配置。这四个组件的结合可以构建出一个功能强大、可扩展性好、易于维护的Web应用...

    将dwr集成到spring mvc(dwr的配置是基于xml)

    在Spring MVC框架中集成DWR,可以进一步提升用户体验,因为Spring MVC专注于处理控制器逻辑,而DWR则负责客户端与服务器之间的通信。 集成DWR到Spring MVC的过程主要包括以下几个步骤: 1. **引入依赖**:首先,你...

    配置整合DWR3.0和Spring2.5使用annotation注解

    在本文中,我们将探讨如何将Direct Web Remoting (DWR) 3.0与Spring 2.5框架整合,并利用注解(Annotation)进行配置。DWR是一个允许JavaScript与Java服务器端进行交互的库,而Spring 2.5引入了对注解的强大支持,...

    spring使用annotation整合dwr笔记

    ### Spring使用Annotation整合DWR知识点解析 #### 一、概览 在现代Web开发中,Direct Web Remoting(简称DWR)是一种简化Ajax应用开发的技术,它允许JavaScript直接调用服务器端的Java方法,而无需编写复杂的XML...

    dwr和spring和struts2整合

    Spring还提供了对其他框架的集成支持,如数据库访问、事务管理以及与Struts2和DWR的整合。 Struts2是一个基于MVC设计模式的Java Web框架,用于构建可维护、可扩展的应用程序。它提供了强大的动作类、拦截器、结果...

    Dwr3+Spring3 全注解 annotation 方式

    本篇文章将详细介绍如何结合Dwr3和Spring3,利用全注解的方式进行集成与配置。 首先,我们需要理解Dwr3的基本概念。DWR3是DWR的第三个主要版本,它提供了一种简单的方法来实现在Web应用程序中调用服务器端的Java...

    spring整合dwr

    通过以上四个步骤,你就成功地将Spring与DWR进行了整合,使得后台服务可以通过Ajax在前端页面上实时展现,提高了Web应用的交互性。在实际开发中,还需要注意处理异常、安全性以及性能优化等问题。

    Spring+Dwr整合的项目(源码)

    本项目是Spring与DWR的整合实例,涵盖了三种整合方式,其中最彻底的方式是通过注解(Annotation)来实现,无需手动配置DWRSERVLET和dwr.xml文件,这使得配置更为简洁,同时也更符合现代开发的实践。 1. **Spring与...

    Spring+DWR 全注解版

    在Demo_Spring_Dwr_Annotation这个文件名中,我们可以推断出这可能是一个包含演示Spring和DWR集成的项目,而且使用了全注解的方式来配置。以下是一些可能包含的知识点: 1. **Spring框架**: Spring是Java企业级应用...

    ajax框架:dwr》实战(包括整合)

    通过将 DWR 与 Spring 和 Hibernate 整合,可以构建出高效、可扩展的企业级应用程序。这种方式不仅提高了开发效率,还增强了系统的可维护性和可测试性。 #### 五、任务与总结 在本章中,我们深入了解了 DWR 的核心...

    dwr快速入门+实例

    1. **DWR+Spring整合**:Spring提供了依赖注入和面向切面编程的支持,可以轻松地将DWR集成到Spring环境中,实现更为灵活的服务层设计。 2. **DWR+Hibernate整合**:结合Hibernate可以方便地实现持久化操作,如...

    Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00

    在Struts配置文件(`struts-config.xml`)中,可以通过`&lt;plug-in&gt;`标签来启用Spring插件,从而实现Struts与Spring之间的紧密集成。 ```xml &lt;!-- 配置项 --&gt; &lt;!-- 配置Action --&gt; ``` **1.3 在Spring配置...

    ajax框架:dwr》实战(包括整合).pdf

    - **Spring 整合说明**:如何将 DWR 与 Spring 框架结合使用,实现更灵活的依赖注入和事务管理。 - **Hibernate 整合说明**:介绍如何利用 Hibernate 进行持久层操作,同时结合 DWR 实现高效的 AJAX 数据交互。 -...

    《ajax框架:dwr与ext》实战

    2. **DWR与SPRING整合说明**: - 解释DWR如何与Spring框架进行整合。 - Spring容器如何管理DWR的服务对象。 3. **DWR与HIBERNATE整合说明**: - 讨论DWR如何与Hibernate进行整合。 - Hibernate如何支持DWR的...

    springMVC整合DWR3.0 实例

    本文将详细介绍如何将SpringMVC与DWR3.0进行整合,并提供一个实际的例子来帮助读者更好地理解和掌握这一整合过程。通过阅读本文,您将能够学会如何在自己的项目中实现这一集成,从而提升项目的性能和可维护性。 ###...

    ajax框架:dwr与ext实践_.pdf

    DWR与SPRING整合说明** - **整合过程**:详细介绍如何将DWR与Spring进行整合,包括依赖注入等方面。 - **实际案例**:提供一个具体的整合示例,以便更好地理解整个过程。 **3. DWR与HIBERNATE整合说明** - **...

    dwr框架详细介绍 讲解浅显易懂

    如果你的应用使用Spring框架,DWR可以与Spring无缝集成。例如,对于DAO或Service层的类,你可以使用`@RemoteProxy`和`SpringCreator`结合`@Param`来指定Spring的bean名称,如下所示: ```java @RemoteProxy(creator ...

    s2sh+dwr+extjs基于annoation三个项目实战

    在项目实战中,"s2sh与dwr整合实现的增删改查.rar"可能是一个基础的CRUD(Create, Read, Update, Delete)应用示例,展示了如何使用S2SH处理后台业务逻辑,DWR进行前后端通信,以及如何在ExtJS界面上实现数据的动态...

Global site tag (gtag.js) - Google Analytics