<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<script src="${application.WebResourceUrl }/scripts/global/lib/jquery/addons/jquery.validate-1.7/jquery.validate.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript" src="${application.WebResourceUrl }/scripts/global/lib/jquery/core/jquery-1.4.2.min.js"></script>
<script type="text/javascript" >
function validateForm(){
var check = true;
if ($("#msgLinkman").val() == "") {
$("#msgLinkman").parent().next().css('color', 'red');
check=false;
}else{
$("#msgLinkman").parent().next().css('color', '#999999');
}
if ($("#msgMobile").val() == "") {
$("#msgMobile").parent().next().css('color', 'red');
check=false;
}else{
$("#msgMobile").parent().next().css('color', '#999999');
}
if ($("#msgContent").val() == "") {
$("#msgContent").parent().next().css('color', 'red');
check=false;
}else{
$("#msgContent").parent().next().css('color', '#999999');
}
check = false;
$("input[type=checkbox]").each(function(){
if($(this).attr("checked")==true || $(this).attr("checked")=='checked'){
$("#msgArea").parent().next().css('display','none');
check=true;
return false;
}else{
$("#msgArea").parent().next().css({'color':'red','display':'block'});
}
});
if($("#msgArea").attr("type")=="text"){
if($("#msgArea").val() == ""){
$("#msgArea").parent().next().css({'color':'red','display':'block'});
check=false;
}else{
$("#msgArea").parent().next().css('display','none');
}
}
return check;
}
$(function () {
$("#ajax_save_msg").click(function () {
if(validateForm()==false){
return false;
}
$.ajax
({ //请求登录处理页
url: "/business/msg/bsn_msg_save_ajax.action", //登录处理页
type: "post",
//传送请求数据
data: $("#business_msg").serialize(),
success: function (result) { //登录成功后返回的数据
if(result=="success"){
alert("提交成功!");
location.reload();
this
}
if(result=="error"){
alert("提交失败,请重新提交!");
}
}
});
});
});
</script>
<form id="business_msg" name="business_msg" method="post" action="${application.localDomain}/ucenter/client/bsn_msg_save.action">
<input type="hidden" name="businessMsg.msgReceiveUid" value="${frontBusinessGyDetail.businessGy.usrId}" />
<input type="hidden" name="businessMsg.msgBusinessId" value="${frontBusinessGyDetail.businessGy.gyId}" />
<input type="hidden" name="businessMsg.msgBusinessType" value="gy" />
<dl class="woyaoliuyan">
<dt>我要留言</dt>
<dd>
<div class="layout_group">
<div class="">
<label><font color="#FF0000">*</font>联系人:</label>
<p class="formbox">
<input class="ipt" id="msgLinkman" name="businessMsg.msgLinkman" type="text" onchange="validateForm();"/>
</p>
<p class="tips">请填写您的真实姓名</p>
</div>
<div class="">
<label><font color="#FF0000">*</font>联系电话:</label>
<p class="formbox">
<input class="ipt" id="msgMobile" name="businessMsg.msgMobile" type="text" onchange="validateForm()"/>
</p>
<p class="tips">方便项目负责人与您联系</p>
</div>
<div class="">
<label>QQ:</label>
<p class="formbox">
<input class="ipt" id="msgQq" name="businessMsg.msgQq" type="text" />
</p>
<p class="tips">请输入您的qq号码</p>
</div>
<div class="">
<label>电子邮件:</label>
<p class="formbox">
<input class="ipt" id="msgEmail" name="businessMsg.msgEmail" type="text" />
</p>
<p class="tips">请留下您的邮箱地址</p>
</div>
<div class="dotted"></div>
<div class="">
<label><font color="#FF0000">*</font>希望代理区域:</label>
<c:choose>
<c:when test="${frontBusinessGyDetail.businessGy.gyArea eq '全国'}">
<p class="diquliebiao">
<input class="ipt" id="msgArea" name="businessMsg.msgArea" type="text" onchange="validateForm()" />
</p>
<p class="tips" style="display:none">请选择代理地区</p>
</c:when>
<c:otherwise>
<p class="diquliebiao">
<c:forEach items="${fn:split(frontBusinessGyDetail.businessGy.gyArea, ',')}" var="area">
<input class="ckbox" id="msgArea" name="businessMsg.msgArea" type="checkbox" value="${area}" onchange="validateForm()"/> ${area}
</c:forEach>
</p>
<p class="tips" style="display:none">请选择代理地区</p>
</c:otherwise>
</c:choose>
</div>
<div class="dotted"></div>
<div class="liuyanxinxi">
<label><font color="#FF0000">*</font> 留言信息:</label>
<p class="formbox">
<textarea class="textarea" id="msgContent" name="businessMsg.msgContent" cols="" rows="" onblur="validateForm()"></textarea>
</p>
<p class="tips" >请输入您的留言信息</p>
</div>
<div class="btnBox"><a href="#" id="ajax_save_msg">提交留言</a></div>
</div>
</dd>
</dl>
<input id="reset" name="" type="reset" style="display:none;" />
</form>
在struts后台代码
XXXXX 对象 get/set略。
struts提供的 类型拦截器会自动 赋值给XXX对象
@Action(value = SAVE_AJAX_ACTION)
public void save() {
PrintWriter pw;
try {
//这句必须有否则,返回前台的对象是 dom objcet.
ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
pw = ServletActionContext.getResponse().getWriter();
if(null != businessMsg){
businessMsg.setMsgIp(Util.getConsumerIP(ServletActionContext.getRequest()));
businessMsg.setMsgCreated(new Date());
businessMsg.setMsgRead(0);
businessMsg.setMsgDelete(0);
businessMsg.setMsgDnd(0);
businessMsgManager.save(businessMsg);
pw.write("success");
}else{
pw.write("error");
}
} catch (IOException e) {
log.error("bus_msg_save is error!",e);
}
}
ps: 目前没找到 josn直接转换成 struts 前后java对象的方法?哪位高手可指导下?
分享到:
相关推荐
总的来说,利用jQuery实现一个简易留言板主要涉及到DOM操作、事件监听、Ajax请求以及前后端交互。理解这些基础概念,并结合实际需求,可以构建出功能更完善的留言板系统。在开发过程中,要时刻关注用户体验,确保...
《jQuery留言板实现详解》 jQuery,作为一款轻量级、功能强大的JavaScript库,极大地简化了JavaScript的DOM操作、事件处理和动画制作。在Web开发领域,jQuery留言板是常见且实用的功能,它允许用户在网站上发表评论...
jQuery留言板的核心功能之一是利用AJAX(异步JavaScript和XML)实现无刷新提交。jQuery的`.ajax()`方法是实现AJAX交互的关键,它允许我们向服务器发送请求并接收响应,而无需刷新整个页面。例如,我们可以创建一个...
本文将深入探讨如何使用jQuery进行异步请求,这是一种非常关键的技术,它允许网页在不重新加载整个页面的情况下,通过Ajax与服务器进行数据交换,从而实现动态更新页面内容。 ### jQuery异步请求概述 jQuery的异步...
jquery做的简单留言板处理(过滤除img之外的html标签) 最近在做web留言板,所以做了这么个东西,但是还有些地方没处理,比如空格没滤掉……以后有好的代码再上传好了
jQuery左拉留言板是一种利用JavaScript库jQuery实现的交互式网页元素,它为用户提供了一种从页面左侧滑动显示留言区域的动态效果。这种设计风格既节省了网页空间,又提升了用户体验,使得用户在不离开当前页面的情况...
本篇资源主要介绍了使用PHP和jQuery实现无刷新留言板的方法,通过Ajax技术实现实时更新页面内容。下面是从代码中总结出的知识点: 一、HTML基础知识 *meta charset="utf-8":指定HTML文档的字符编码为UTF-8。 *...
这就是“jQuery字符插件之适合留言板的jquery文本框输入字符限制插件”的作用。这个插件专门用于帮助开发者实现在jQuery环境中对文本输入框的字符数量进行实时监控和限制。 jQuery是一个强大的JavaScript库,它简化...
jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...
标题中的“jQuery实现的纯HTML模板进行ajax数据绑定”指的是使用jQuery库来处理HTML模板,并通过AJAX技术动态地从服务器获取JSON数据,然后将这些数据绑定到模板中,实现页面内容的动态更新,无需刷新整个页面。...
本文将深入探讨如何在ASP.NET中配置允许jQuery进行跨域提交请求数据的方法。 首先,了解CORS的工作原理。CORS通过在HTTP头信息中添加`Access-Control-Allow-*`字段来实现跨域访问。服务器需要明确允许哪些源可以...
Ajax,即Asynchronous JavaScript and XML,允许我们在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容,提供更流畅的用户体验。 在“jQuery-ajax-用户名异步请求”这个场景中,我们可能是在设计一个...
当用户点击“发表”按钮时,jQuery可以发送AJAX(Asynchronous JavaScript and XML)请求,无刷新地将数据传递给后台PHP脚本,同时在页面上实时显示新的留言。此外,它还可以用来处理表单验证,提供友好的错误提示,...
在留言板系统中,AJAX允许用户在不刷新整个页面的情况下发送请求,比如提交留言或获取新的留言。这提供了更快的响应时间和更好的用户体验。 5. 验证码: 验证码是一种防止自动机器人提交恶意数据的安全机制。在这...
首先,留言板的核心功能包括用户提交留言、显示已有留言以及管理员的管理功能。在技术层面上,这通常需要HTML用于页面结构,CSS用于样式设计,JavaScript或jQuery处理动态交互,以及可能的服务器端语言(如PHP或Node...
ASP.NET 2.0 和 jQuery 是两种非常重要的 Web 开发技术,它们的结合可以实现高效、动态的用户体验,比如在本示例中的“无刷新”留言板。无刷新技术,也称为 AJAX(Asynchronous JavaScript and XML),允许网页部分...
本项目"jQuery文字选项问卷调查表单提交"是利用jQuery来构建的一个滚动投票程序,主要关注用户交互和数据提交方面。 首先,jQuery库的核心特性在于它的选择器功能,这使得能够方便地选取DOM元素。在这个问卷调查...
在留言板系统中,jQuery将用于处理用户交互,如监听表单提交事件,使用AJAX进行异步数据传输,以实现无刷新页面更新。 AJAX(Asynchronous JavaScript and XML)技术允许网页在不重新加载整个页面的情况下,与...
总结,jQuery为实现页面局部刷新提供了强大的工具,通过AJAX请求获取数据,然后结合DOM操作方法更新页面内容。结合良好的编程习惯和优化策略,可以创建出响应迅速、用户体验优良的Web应用。在实际项目中,可以根据...