标签:
DWR提供了一个spring的创建器,一旦使用spring创建器,DWR将负责搜索Web应用中的Spring容器,并将Springp容器中的Bean转换成一个浏览器中JavaScript可调用的对象。
下面我们创建一个简单的服务器处理类,该服务器处理将被配置在Spring容器中。
package com.owen.dwr.dwr; /** *服务器处理类 * @author owenwilliam 2016-5-8 * @version 1.0 */ public class HelloSpring { // 服务器处理方法 public String hello(String name) { return name + "您好,您已经会调用Spring中的Bean了..."; } }
将上面定义的类部署在Spring容器中。
<?xml version="1.0" encoding="GBK"?> <!-- 指定Spring配置文件的Schema信息 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- 定义一个bean --> <bean id="hello" class="com.owen.dwr.HelloSpring" /> </beans>
<?xml version="1.0" encoding="GBK"?> <web-app 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" version="2.5"> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置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> </servlet> <!-- 指定核心Servlet的URL映射 --> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <!-- 指定核心Servlet映射的URL --> <url-pattern>/leedwr/*</url-pattern> </servlet-mapping> </web-app>
<?xml version="1.0" encoding="GBK"?> <!-- 指定DWR配置文件的DTD等信息 --> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd"> <dwr> <allow> <create creator="spring" javascript="hello"> <!-- 指定使用Spring容器中的hello Bean --> <param name="beanName" value="hello"/> </create> </allow> </dwr>
function sendMessage() { // 调用远程的hello方法,使用了dwr.util的getValue方法获取HTML元素的值 hello.hello(dwr.util.getValue('name') , cb); } // 回调方法 function cb(data) { // 使用dwr.util的setValue方法设置HTML元素的值 dwr.util.setValue('show' ,data); }
接下来我们就写个index.html文件来调用。
<!DOCTYPE html> <html> <head> <meta name="author" content="OwenWilliam" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> DWR整合Spring </title> </head> <body> <script type='text/javascript' src='./leedwr/engine.js'></script> <script type='text/javascript' src='./leedwr/util.js'></script> <script type='text/javascript' src='./leedwr/interface/hello.js'></script> <script type="text/javascript" src="hellodwr.js"></script> <h3> DWR整合Spring </h3> 请输入您的名字<input id="name" name="name" type="text"/><br /> <input type="button" value="调用Spring Bean" onclick="sendMessage();"/> 下面是服务器的回应: <hr> <div id="show"></div> </body> </html>
标签:
原文地址:http://blog.csdn.net/owen_william/article/details/51346579