`
ctojxzsycztao
  • 浏览: 78693 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

用 DWR 实现 POST 方法提交 --CTO

    博客分类:
  • DWR
阅读更多

近来在实现在做网站的过程当中有一个功能,就是用户需要对网页展示产品进行评论,本来是想用表单来直接

提交,但是想想用表单提交后还需要再返回到产品页面,页面需要进行一次刷新,而且页面展示的数据量太大

,所以就考滤用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>

 好了以上就是我所实现的一个过程,需望对大家会有所帮助

0
0
分享到:
评论

相关推荐

    DWR入门程序---计算输入的两个数之和.rar

    这个“DWR入门程序---计算输入的两个数之和.rar”压缩包文件很可能是为了演示如何使用DWR来实现在网页上动态计算两个数的和。下面将详细解释DWR的基本概念、工作原理以及如何利用它来实现这个简单的功能。 1. **DWR...

    dwr,jar和dwr-noncla.jar

    首先,`dwr.jar`是DWR的主要库文件,包含了所有实现DWR功能的类和接口。这个库使得服务器能够动态生成JavaScript代码,并将其发送到客户端浏览器,同时也处理客户端发回的请求。DWR的核心组件包括: 1. **Engine**:...

    dwr.jar/dwr-2.0.5-src.zip/dwr.zip

    当你在项目中引入dwr.jar,你可以使用DWR提供的API来实现Ajax功能。这个jar文件包括了各种Servlet、Filter、JavaScript接口和辅助类,使得开发者可以轻松地将服务器端的方法暴露给客户端JavaScript调用。 2. **dwr-...

    DWR_入门与应用-林信良(良葛格)

    通过以上步骤,我们成功实现了DWR的基本使用流程。DWR不仅简化了Java与JavaScript之间的交互,还提高了开发效率。在实际项目中,DWR可以用于实现复杂的异步操作,如实时数据更新、表单验证等。此外,它还可以与其他...

    dwr入门 -- 03 -- 结合Spring

    DWR是一个Java库,允许在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用Java方法,实现了Web应用中的Ajax功能。而Spring是广泛使用的Java企业级应用开发框架,提供了全面的基础设施支持,包括...

    dwr-任何java类-测试

    Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信,从而实现动态、实时的Web交互。这个“dwr-任何java类-测试”主题着重于如何利用DWR来调用Java类...

    DWR简单配置说明---xml、java、jsp层层说明

    ### DWR简单配置详解 #### 一、简介 ...遵循以上步骤,您就能够成功配置并使用DWR来实现从客户端JavaScript到服务器端Java的远程调用。通过进一步了解DWR的高级特性,您可以实现更加复杂的交互功能。

    DWR开发入门教程--配置与开发

    DWR(Direct Web Remoting)是一款开源的Ajax框架,它使得JavaScript可以轻松地调用服务器端的Java方法,从而实现了更为动态和交互式的Web应用程序。本篇教程将详细介绍如何进行DWR的基本配置与开发工作,帮助初学者...

    Dwr 学习研究应用--Spring和DWR的整合

    DWR(Direct Web Remoting)是一个开源的Java库,允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。它打破了传统的AJAX模式,提供了一种更简单的方式来执行服务器端的方法并返回...

    dwr-1.1.4-all-bin.zip

    1. **反向AJAX (Reverse AJAX)**:DWR通过创建JavaScript对象来映射服务器端的Java类和方法,使得JavaScript可以直接调用这些方法,实现了浏览器到服务器的异步通信。 2. **自动JSON支持**:DWR能够自动将Java对象...

    dwr入门 -- 01 -- Hello Word

    DWR(Direct Web Remoting)是一种JavaScript库,它允许在浏览器和服务器之间进行实时、安全的双向通信,从而实现Web应用中的Ajax功能。通过DWR,开发者可以在客户端JavaScript代码中直接调用服务器端Java方法,极大...

    dwr入门 -- 02 -- HelloWord解释&&使用javabean

    DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现动态的Web应用。在"HelloWorld解释&&使用javabean"这个主题中,我们将深入理解DWR的基本概念、工作...

    dwr-2.0.rc2-src

    【标题】"dwr-2.0.rc2-src" 是Direct Web Remoting(DWR)的一个版本,它是一个开源的Java库,允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现AJAX功能。这个版本是源码版本,意味着用户可以深入理解其...

    DWR中文文档--方佳玮

    方佳玮的DWR中文文档详细解释了这些概念和使用方法,对于希望快速上手DWR的开发者来说是一份极好的参考资料。通过学习这份文档,开发者可以深入理解DWR的工作机制,从而有效地在Web应用中实现高效、流畅的客户端-...

    DWR使用方法-step by step

    ### DWR使用方法详解:逐步指南 #### 一、引言 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许在浏览器端直接调用服务器端的方法,如同调用本地对象一样简单。本篇文章将从安装DWR、配置相关文件到...

    DWR集合Spring实现异步提交

    **DWR(Direct Web Remoting)集合Spring实现异步提交** DWR(Direct Web Remoting)是一种开源JavaScript库,它允许Web应用程序在客户端与服务器之间进行实时、双向通信,从而实现异步数据交换。结合Spring框架,...

    dwr-下拉菜单实现

    DWR是一种简化Ajax应用开发的Java库,它允许在浏览器端直接调用服务器端的方法,从而实现了更简洁高效的前后端交互方式。通过DWR,前端开发者可以像调用本地JavaScript函数一样轻松地调用后端服务,极大地简化了开发...

    整理好的DWR-2.0.5-src

    这个不是我的原创,原文件出至这里:...原资源包含了,源代码和API Doc,只是美中不足的是没有整理成可用的zip文档,我这特分离了一下,并重新打好包了,初步测试了一下能用。

    dwr实现的分页功能

    DWR(Direct Web Remoting)是一个开源的Java库,它允许JavaScript在客户端与服务器端的Java对象进行直接交互,从而实现在Web应用中的Ajax(Asynchronous JavaScript and XML)功能。在本示例中,我们将深入探讨如何...

    服务器推--DWR中的push机制-Reverse_Ajax.docx

    从DWR 2.04版本开始,默认使用早期关闭模式。若要切换到全流模式,需配置`maxWaitAfterWrite`参数为-1。 - **Polling Mode**(轮询模式) 虽然DWR主要关注减少服务器负载,但依然提供了轮询模式作为选择。在这种...

Global site tag (gtag.js) - Google Analytics