使用DWR注解Annotation
文章分类:Web前端
Struts 2,Spring,Hibernate 都可以使用Annotation来代替XML的配置,DWR也可以使用Annotation注解来代替XML的配置
要使用Annotation注解,就得在web.xml中配DWR核心Servlet的时候加一个参数(classes),此参数会自动加载那些Java类
先看web.xml文件的配置:
Xml代码
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 配置DWR的核心Servlet --> <servlet> <!-- 指定DWR核心Servlet的名字 --> <servlet-name>dwr-invoker</servlet-name> <!-- 指定DWR核心Servlet的实现类 --> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <!-- 指定DWR核心Servlet处于调试状态 --> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <!-- 配置DWR自动加载哪些Java类 --> <init-param> <param-name>classes</param-name> <param-value>com.lbx.dwr.annotation.test.Test,com.lbx.dwr.annotation.model.Person</param-value> </init-param> </servlet> <!-- 指定核心Servlet的URL映射 --> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <!-- 指定核心Servlet映射的URL --> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
package com.lbx.dwr.annotation.test; import org.directwebremoting.annotations.RemoteProxy; import org.directwebremoting.create.NewCreator; import com.lbx.dwr.annotation.model.Person; @RemoteProxy(creator=NewCreator.class,name="Demo") public class Test { //定义一个简单方法 public String hello(Person person){ return person.getName() + ",你好"; } } @DataTransferObject转换相当 <convert... >@RemoteProperty表明那些属性是可转换的Java代码 package com.lbx.dwr.annotation.model; import org.directwebremoting.annotations.DataTransferObject; import org.directwebremoting.annotations.RemoteProperty; @DataTransferObject public class Person { //使用Annotation标识下面两个属性是可转换的属性 @RemoteProperty private String name; @RemoteProperty private int age; public Person() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>DWR的Annotation支持</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type='text/javascript' src='dwr/interface/Demo.js'></script> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script> <script type="text/javascript"> function sendMessage(){ var p = { name:dwr.util.getValue("name"), age:"23" } Demo.hello(p,cb); } function cb(data){ $("show").innerHTML = data; } </script> </head> <body> <h3> DWR的Annotation支持 </h3> 请输入您的名字 <input id="name" name="name" type="text" /> <br /> <input type="button" value="发送请求" onclick="sendMessage();" /> <hr /> 下面是服务器的回应: <br /> <div id="show"></div> </body> </html>