编辑Java类
package org.lucifer.dwr;
import org.directwebremoting.annotations.Param;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.directwebremoting.annotations.ScriptScope;
import org.directwebremoting.create.NewCreator;
@RemoteProxy(creator=NewCreator.class, name="service", scope=ScriptScope.PAGE,
creatorParams=@Param(name="class", value="org.lucifer.dwr.AjaxService"))
public class AjaxService {
@RemoteMethod
public String welcome(String yourName) {
StringBuilder sb = new StringBuilder("欢迎使用DWR应用示例,你是:");
sb.append(yourName).append(".");
return sb.toString();
}
}
编辑配置web.xml文件
要应用DWR框架,首先需要在web.xml文件中设置DWR,以下配置必须被添加到WEB-INF/web.xml文件中。在web.xml文件中设置DWR内容如下:
<servlet>
<description>配置DWR核心Servlet</description>
<servlet-name>dwr-invoker</servlet-name>
<!-- 指定DWR核心Servlet的实现类 -->
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<description>指定Web应用中要使用的DWR传输对象类和代理类</description>
<param-name>classes</param-name>
<param-value>org.lucifer.dwr.AjaxService</param-value>
</init-param>
<init-param>
<description>指定DWR核心Servlet是否处于Debug状态</description>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
编写JSP
创建JSP文件,在文件中使用DWR需要注意以下事项:
- 要引用DWR的JS文件,其中engine.js是必须要引用的文件,如果需要用到DWR提供的一些工具,还需要引用util.js文件。
- 然后还要引用句DWR自动生成的JS文件,例如:dwr/interface/service.js,注意JS文件名要与Java类中的注解中定义的name属性一致。
- JS里的service.welcome()方法和Java类的方法有一个区别,即多了一个参数,用来回调返回的数据。
下面是调用AjaxService类的welcome()方法的JSP文件示例,实现代码如下:
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="basePath" value="${pageContext.servletContext.contextPath}"/>
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8"/>
<title>DWR 示例</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script type="text/javascript" src="${basePath}/dwr/engine.js"></script>
<script type="text/javascript" src="${basePath}/dwr/interface/service.js"></script>
<script type="text/javascript" src="js/dwr_simple.js"></script>
<script type="text/javascript" src="${basePath}/dwr/util.js"></script>
</head>
<body>
<form id="myForm" name="myForm">
<label for="user">请输入名字:</label>
<input type="text" name="user" id="user" autocomplete="on" placeholder="请输入名字"/>
<button type="button" name="clickMe" id="clickMe">测试</button>
</form>
<footer>
<p><div id="console"></div></p>
</footer>
</body>
</html>
编写JavaScript文件
var logger = function(msg) {
jQuery("<strong>").append(msg).after("<br/>").appendTo("#console");
};
jQuery(function() {
var callbackHandler = {
callback:function(data) {
logger("进入回调函数.");
jQuery("<span>").append(data).after("<br/>").prependTo("#console");
logger("退出回调函数.");
},
errorHandler:function(msg) {
logger("进入错误处理函数");
jQuery("<strong>").append(msg).after("<br/>").appendTo("#console");
logger("退出错误处理函数");
},
timeout:2000
};
var handler = function(event) {
logger("进入事件处理函数.");
var nameText = jQuery("#user").val();
if(nameText != "") {
logger("准备调用DWR方法");
service.welcome(nameText, callbackHandler);
logger("DWR方法执行完成");
} else {
alert("注意:名字字段不能为空!");
}
logger("退出事件处理函数.");
};
jQuery("#myForm").submit(function(event) {
logger("触发onsubmit事件");
handler(event);
logger("完成onsubmit事件");
this.stopPropagation();
return false;
});
jQuery("#clickMe").click(function(event) {
logger("触发onclick事件");
handler(event);
logger("完成onclick事件");
});
});
分享到:
相关推荐
51jobduoyehtml爬虫程序代码QZQ2
白色大气风格的商务英语学习培训网站模板.zip
锡林郭勒市五险一金办事指南
警务处内务规定
白色扁平化风格的设计创业公司模板下载.zip
白色大气风格的土建设计公司模板下载.zip
白色大气风格的响应式CSS3模板下载.zip
白色大气风格的个人简历网页模板下载.zip
白色调简洁的咨询公司整站模板下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
Origin教程008:热图所需练习数据
白色扁平化风格的企业创意联系方式模板下载.zip
白色大气风格的欧美穿衣风格网站模板下载.zip
白色干净大气的企业网站模板下载.zip
内容概要:本文介绍了一段简单的Python代码,用于在控制台中输出一棵带有装饰的圣诞树。具体介绍了代码结构与逻辑,包括如何计算并输出树形的各层,如何加入装饰元素以及打印树干。还提供了示例装饰字典,允许用户自定义圣诞树装饰位置。 适用人群:所有对Python编程有一定了解的程序员,尤其是想要学习控制台图形输出的开发者。 使用场景及目标:适用于想要掌握如何使用Python代码创建控制台艺术,特别是对于想要增加节日氛围的小项目。目标是帮助开发者理解和实现基本的字符串操作与格式化技巧,同时享受创造乐趣。 其他说明:本示例不仅有助于初学者理解基本的字符串处理和循环机制,而且还能激发学习者的编程兴趣,通过调整装饰物的位置和树的大小,可以让输出更加个性化和丰富。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格响应式通用后台管理网站模板.zip
白色风格的广告设计公司网站模板下载.rar
2008-2020年各省技术服务水平相关指标数据 1.时间:2008-2020年 2.指标:行政区划代码、地区、年份、信息传输、软件和信息技术服务业城镇单位就业人员(万人)、软件业务收入(万元)、高技术产品出口额占商品出口额比重(%) 3.范围:31省 4.来源:科技年鉴、国家统计J
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;