在项目中的注册页面需要判断影片编码是否存在,采用了jquery的验证框架的remote方法来实现。
1、js脚本:
$(document).ready(function(){
$("#myForm").validate({
rules:{
"mediaInfo.mediacode":{
required:true,
remote:"media!validateMediacode.action" //验证影片编码是否存在的Action
}
},
messages: {
"mediaInfo.mediacode":{
required:"请输入影片编码",
remote:"该影片编码已被注册" //当后台返回false时,不许注册
}
}
});
}) ;
2、java代码:
由于jquery的remote方法只允许返回true或者false,当返回false时,输出messages的内容:"该影片编码已经注册"。在Struts2的有两种方法可以实现:
(1)、利用HttpServletResponse对象的response实例,Java代码如下:
public String validateMediacode() throws Exception{
HttpServletRequest sRequst= ServletActionContext.getRequest();
sRequst.setCharacterEncoding("UTF-8");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/plain;charset=UTF-8");
String meidacode = sRequst.getParameter("mediaInfo.mediacode");
if(null != meidacode && "wangwang".equals(meidacode)){
//影片编码已经存在,不许注册
response.getWriter().write("false");
} else {
//允许注册
response.getWriter().write("true");
}
return null;
}
struts.xml配置:可以不用配置<result>输出项。本方法的缺点是依赖于HttpServletResponse。
(2)、使用Struts2的stream返回类型:
Boolean canSign = true;
// 数据库中是否存在该用户名
if (null != meidacode && "wangwang".equals(meidacode)) {
canSign = false;// 表示存在,要返回false
}
inputStream = new ByteArrayInputStream(canSign.toString().getBytes()); //将true或者false转化为流,要为inputStream提供getter方法。
return null;
引用
由于remote规则只允许后台返回true或false,因此struts2的action得不同于一般的action,不能返回一个字符串,然后dispatch一个视图之类的。研究之后,发现struts2中有一种result类型:stream,通过该类型可以实现返回true或false。action代码如下
struts.xml配置:
<package name="media" extends="struts-default">
<action name="media" class="mediaAction">
<result type="stream">
<param name="contentType">text/plain</param><!-- 默认为text/plain -->
<param name="inputName">inputStream</param><!-- 默认就为inputStream -->
</result>
</action>
</package>
以上的contentType不能使用text/html类型,也可以不用配置该项,默认就是text/plain类型。
分享到:
相关推荐
### Struts2与jQuery.validate框架简介 #### Struts2框架 Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,提供了一个用于构建企业级Java Web应用的强大MVC框架。Struts2的核心组件包括拦截器、...
jquery.validate.1.9.0.min.js jquery.validate.1.12.0.min.js jquery.validate.1.13.1.min.js jquery.validate.1.16.0.min.js jquery.validate.1.14.0.min.js jquery.validate.1.15.1.min.js jquery.validate....
jquery.validate.js jquery.validate.js
2. validate.js或validate.min.js:这是jQuery Validate插件的主要文件,提供了验证功能。 3. form.js或form.min.js:这是jQuery Form插件的文件,用于实现Ajax表单提交。 4. 可能还会有其他资源文件,如CSS样式表...
jquery.validate.min.js jquery jquery验证插件 validate
jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来...
jquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.jsjquery.validate.js...
微软的jquery.validate.unobtrusive.js验证插件,可以用来验证单选和多选框的.
2. 验证规则:文件列出了jquery.validate.js提供的多种表单验证规则,包括required(必填)、email(电子邮件格式)、url(URL格式)、date(日期格式)、dateISO(ISO日期格式)、number(数字)、digits(数字)、...
jQuery.validate.js是一款强大的JavaScript插件,专为jQuery框架设计,用于实现前端表单验证,提供了丰富的验证规则和自定义选项,使得开发者能够轻松地构建具有高效验证功能的网页。 一、jQuery.validate.js的核心...
《jQuery.validate 用法详解及源码解析》 在网页开发中,表单验证是必不可少的一环,确保用户输入的数据符合预设的规则,避免无效数据的提交。jQuery.validate插件是一个强大的、易于使用的JavaScript库,它使得在...
jquery.validate.extend.js
《jQuery表单验证框架——深入理解jQuery.validate》 在网页开发中,表单验证是必不可少的一环,它能确保用户输入的数据符合预期,减少服务器端的处理负担,提高用户体验。jQuery是一个广泛使用的JavaScript库,而...
jquery.validate插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来...
jQuery.validate允许你自定义错误消息,通过设置`messages`对象来实现。例如: ```javascript messages: { required: "这是必填字段。", remote: "请修正此字段。", email: "请输入有效的电子邮件地址。", /...
本文将深入探讨jQuery validate.js的核心功能及其API,同时结合提供的帮助文档,为你揭示其背后的实现原理和使用技巧。 首先,jQuery validate.js的主要功能是为HTML表单提供强大的验证规则。通过简单的配置,...