近来在实现在做网站的过程当中有一个功能,就是用户需要对网页展示产品进行评论,本来是想用表单来直接
提交,但是想想用表单提交后还需要再返回到产品页面,页面需要进行一次刷新,而且页面展示的数据量太大
,所以就考滤用AJAX来实现,用户也可以选择性的刷新页面,考滤到用户评论的数据可能过长,所以选择使用
POST方法来提交再结合DWR来实现,因为项目中使用了SPRING,所以我这里就使用DWR结合SPRING来实现上述功能
,下面是我的实现过程,首先需要抒写数据层和业务层的实现方法,持久层使用了Hibernate,就是调用了
HibernateDaoSupport模板中的save方法来保存,在这里我不列出该方法代码,首先看下业务层的方法
@Override
public String save(Comments comments) {
if(null != comments){
String content = comments.getCommentContent();
if(!UtilTool.isNull(content)){
try {
/* getContent 方法用于将一个指定的标识潜换为一个表情图片 */
content = getContent(content);
comments.setCommentContent(content);
comments.setCommentTime(UtilTool.currentDate());
getCommentsDao().save(comments);
return "评论成功!!!";
} catch (IOException e) {
e.printStackTrace();
}
}
}
return "评论失败!!!";
}
Comments.java 实体类代码,该类中的数据将同步于数据库
@SuppressWarnings("serial")
public class Comments implements java.io.Serializable {
/* 评论ID */
private Integer commentId;
/* 评论用户 */
private String userName;
/* 评论内容 */
private String commentContent;
/* 评论的资源类别,如游戏、软件等 */
private Integer vasId;
/* 资源ID */
private Integer contentId;
/* 评论时间 */
private String commentTime;
public Comments() {
}
// get set 略.....
}
接下来展示一下dwr.xml 文件的配置
<create javascript="commentsService" creator="spring">
<param name="beanName" value="commentsService"></param>
<include method="save"/>
</create>
<convert match="com.zhangshang.web.po.common.Comments" converter="bean">
<param name="include" value="userName,commentContent,vasId,contentId"></param>
</convert>
这里配置了一个 commentsService,指明获取业务层对象从spring当中获取
这里的说明是在返回的结果实体对象中你需要获取那些属性的参数
最后我们来看一下页面的提交方式,这里最为重要
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/interface/commentsService.js"></script>
<script type="text/javascript">
function saveComments(){
var sourceEditor = document.getElementById("commentContent");
if(sourceEditor.value == ''){
alert("你还没有输入评论!!!");
return;
}
if (typeof window['DWRUtil'] == 'undefined')
DWRUtil = dwr.util;
var formMap = DWRUtil.getValues("commentForm");
commentsService.save(formMap,callBack);
}
function callBack(str){
alert(str);
}
function editor_createImg(face){
document.getElementById("commentContent").value += "[em"+face+"]";
}
</script>
<div id="comment1">
<form name="commentForm" method="post" id="commentForm">
<div class="re_input_main">
<h3>发表评论</h3>
<p class="id_area">
<input type="hidden" name="vasId"
value="${appGame.vasmainTypeList.vasmainTypeId}"/>
<input type="hidden" name="contentId" value="${appGame.contentid}"/>
<input type="hidden" name="vasName"
value="${appGame.vasmainTypeList.vasmainTypeDisplay}"/>
<input type="hidden" name="contentName" value="${ebook.name}"/>
<label for="username">用户名:</label>
<c:choose>
<c:when test="${empty USERNAME}">
<input type="text" name="userName" maxlength="16"
readonly="readonly" id="username" value="游客"/>
</c:when>
<c:otherwise>
<input type="text" name="userName" maxlength="16"
readonly="readonly" id="username" value="${USERNAME}"/>
</c:otherwise>
</c:choose>
</p>
<div class="main_input_area clear">
<textarea id="commentContent" name="commentContent" class="content"></textarea>
<div class="face">
<h4>插入表情</h4>
<ul class="post_face_area clear">
<li>
<a href="javascript:editor_createImg(51);" class="post_face1">表情51</a>
<a href="javascript:editor_createImg(52);" class="post_face2">表情52</a>
<a href="javascript:editor_createImg(53);" class="post_face3">表情53</a>
<a href="javascript:editor_createImg(54);" class="post_face4">表情54</a>
<a href="javascript:editor_createImg(55);" class="post_face5">表情55</a>
<a href="javascript:editor_createImg(56);" class="post_face6">表情56</a>
</li>
<li>
<a href="javascript:editor_createImg(57);" class="post_face7">表情57</a>
<a href="javascript:editor_createImg(58);" class="post_face8">表情58</a>
<a href="javascript:editor_createImg(59);" class="post_face9">表情59</a>
<a href="javascript:editor_createImg(60);" class="post_face10">表情60</a>
<a href="javascript:editor_createImg(61);" class="post_face11">表情61</a>
<a href="javascript:editor_createImg(62);" class="post_face12">表情62</a>
</li>
<li>
<a href="javascript:editor_createImg(63);" class="post_face13">表情63</a>
<a href="javascript:editor_createImg(64);" class="post_face14">表情64</a>
<a href="javascript:editor_createImg(65);" class="post_face15">表情65</a>
<a href="javascript:editor_createImg(66);" class="post_face16">表情66</a>
<a href="javascript:editor_createImg(67);" class="post_face17">表情67</a>
<a href="javascript:editor_createImg(68);" class="post_face18">表情68</a>
</li>
<li>
<a href="javascript:editor_createImg(69);" class="post_face19">表情69</a>
<a href="javascript:editor_createImg(70);" class="post_face20">表情70</a>
<a href="javascript:editor_createImg(71);" class="post_face21">表情71</a>
<a href="javascript:editor_createImg(72);" class="post_face22">表情72</a>
<a href="javascript:editor_createImg(73);" class="post_face23">表情73</a>
<a href="javascript:editor_createImg(74);" class="post_face24">表情74</a>
</li>
<li>
<a href="javascript:editor_createImg(75);" class="post_face25">表情75</a>
<a href="javascript:editor_createImg(76);" class="post_face26">表情76</a>
<a href="javascript:editor_createImg(77);" class="post_face27">表情77</a>
<a href="javascript:editor_createImg(78);" class="post_face28">表情78</a>
<a href="javascript:editor_createImg(79);" class="post_face29">表情79</a>
<a href="javascript:editor_createImg(80);" class="post_face30">表情80</a>
</li>
<li>
<a href="javascript:editor_createImg(81);" class="post_face31">表情81</a>
<a href="javascript:editor_createImg(82);" class="post_face32">表情82</a>
<a href="javascript:editor_createImg(83);" class="post_face33">表情83</a>
<a href="javascript:editor_createImg(84);" class="post_face34">表情84</a>
<a href="javascript:editor_createImg(85);" class="post_face35">表情85</a>
<a href="javascript:editor_createImg(86);" class="post_face36">表情86</a>
</li>
</ul>
</div>
</div>
<input name="Button1" type="button" id="Comments_Button1" onclick="saveComments();" value="发表评
论" />
</div>
</form>
好了以上就是我所实现的一个过程,需望对大家会有所帮助
分享到:
相关推荐
这个“DWR入门程序---计算输入的两个数之和.rar”压缩包文件很可能是为了演示如何使用DWR来实现在网页上动态计算两个数的和。下面将详细解释DWR的基本概念、工作原理以及如何利用它来实现这个简单的功能。 1. **DWR...
首先,`dwr.jar`是DWR的主要库文件,包含了所有实现DWR功能的类和接口。这个库使得服务器能够动态生成JavaScript代码,并将其发送到客户端浏览器,同时也处理客户端发回的请求。DWR的核心组件包括: 1. **Engine**:...
当你在项目中引入dwr.jar,你可以使用DWR提供的API来实现Ajax功能。这个jar文件包括了各种Servlet、Filter、JavaScript接口和辅助类,使得开发者可以轻松地将服务器端的方法暴露给客户端JavaScript调用。 2. **dwr-...
通过以上步骤,我们成功实现了DWR的基本使用流程。DWR不仅简化了Java与JavaScript之间的交互,还提高了开发效率。在实际项目中,DWR可以用于实现复杂的异步操作,如实时数据更新、表单验证等。此外,它还可以与其他...
DWR是一个Java库,允许在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用Java方法,实现了Web应用中的Ajax功能。而Spring是广泛使用的Java企业级应用开发框架,提供了全面的基础设施支持,包括...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信,从而实现动态、实时的Web交互。这个“dwr-任何java类-测试”主题着重于如何利用DWR来调用Java类...
### DWR简单配置详解 #### 一、简介 ...遵循以上步骤,您就能够成功配置并使用DWR来实现从客户端JavaScript到服务器端Java的远程调用。通过进一步了解DWR的高级特性,您可以实现更加复杂的交互功能。
DWR(Direct Web Remoting)是一款开源的Ajax框架,它使得JavaScript可以轻松地调用服务器端的Java方法,从而实现了更为动态和交互式的Web应用程序。本篇教程将详细介绍如何进行DWR的基本配置与开发工作,帮助初学者...
DWR(Direct Web Remoting)是一个开源的Java库,允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。它打破了传统的AJAX模式,提供了一种更简单的方式来执行服务器端的方法并返回...
1. **反向AJAX (Reverse AJAX)**:DWR通过创建JavaScript对象来映射服务器端的Java类和方法,使得JavaScript可以直接调用这些方法,实现了浏览器到服务器的异步通信。 2. **自动JSON支持**:DWR能够自动将Java对象...
DWR(Direct Web Remoting)是一种JavaScript库,它允许在浏览器和服务器之间进行实时、安全的双向通信,从而实现Web应用中的Ajax功能。通过DWR,开发者可以在客户端JavaScript代码中直接调用服务器端Java方法,极大...
DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现动态的Web应用。在"HelloWorld解释&&使用javabean"这个主题中,我们将深入理解DWR的基本概念、工作...
【标题】"dwr-2.0.rc2-src" 是Direct Web Remoting(DWR)的一个版本,它是一个开源的Java库,允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现AJAX功能。这个版本是源码版本,意味着用户可以深入理解其...
方佳玮的DWR中文文档详细解释了这些概念和使用方法,对于希望快速上手DWR的开发者来说是一份极好的参考资料。通过学习这份文档,开发者可以深入理解DWR的工作机制,从而有效地在Web应用中实现高效、流畅的客户端-...
### DWR使用方法详解:逐步指南 #### 一、引言 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许在浏览器端直接调用服务器端的方法,如同调用本地对象一样简单。本篇文章将从安装DWR、配置相关文件到...
**DWR(Direct Web Remoting)集合Spring实现异步提交** DWR(Direct Web Remoting)是一种开源JavaScript库,它允许Web应用程序在客户端与服务器之间进行实时、双向通信,从而实现异步数据交换。结合Spring框架,...
DWR是一种简化Ajax应用开发的Java库,它允许在浏览器端直接调用服务器端的方法,从而实现了更简洁高效的前后端交互方式。通过DWR,前端开发者可以像调用本地JavaScript函数一样轻松地调用后端服务,极大地简化了开发...
这个不是我的原创,原文件出至这里:...原资源包含了,源代码和API Doc,只是美中不足的是没有整理成可用的zip文档,我这特分离了一下,并重新打好包了,初步测试了一下能用。
DWR(Direct Web Remoting)是一个开源的Java库,它允许JavaScript在客户端与服务器端的Java对象进行直接交互,从而实现在Web应用中的Ajax(Asynchronous JavaScript and XML)功能。在本示例中,我们将深入探讨如何...
从DWR 2.04版本开始,默认使用早期关闭模式。若要切换到全流模式,需配置`maxWaitAfterWrite`参数为-1。 - **Polling Mode**(轮询模式) 虽然DWR主要关注减少服务器负载,但依然提供了轮询模式作为选择。在这种...