折腾了几天struts2框架,发现其对校验的支持不是很好,主要体现在如下几点
1.灵活性差
只有theme为xhtml和css_xhtml的时才能够启用纯客户端的js验证.
一般用户对页面UI表示都有一定的要求,当theme为xhtml或css_xhtml的时候会导致页面的排版和用户的UI要求不一致,而且几乎无法解决该问题.并且struts2纯js客户端的错误信息是利用动态添加一个tr来显示的.这就导致如果我想把错误和表单显示在同一行,利用struts2的客户端验证就很难做到.
2.默认支持的校验类型比较少.
struts2默认只支持比较少的几种验证类型例如
* required validator
* requiredstring validator
* stringlength validator
* regex validator
* email validator
* url validator
* int validator
* double validator
date和表达式验证都不支持.这给使用造成了一定的麻烦.
3.不支持客户端定制的js验证.
针对如上几点郁闷的地方,我在网上寻找了很久终于发现了一个比较好js客户端验证的框架
jquery-validate
该验证框架基于jquery这个js框架,利用jquery特性实现客户端的js校验,主要特点如下
1.支持基于表单类似声明式的js验证详细例子如下
$("#signupForm").validate({
rules: {
firstname: "required",
lastname: "required",
username: {
required: true,
minlength: 2
},
password: {
required: true,
minLength: 5
},
confirm_password: {
required: true,
minlength: 5,
equalTo: "#password"
},
email: {
required: true,
email: true
},
topic: {
required: "#newsletter:checked",
minLength: 2
},
agree: "required"
},
messages: {
firstname: "Please enter your firstname",
lastname: "Please enter your lastname",
username: {
required: "Please enter a username",
minLength: "Your username must consist of at least 2 characters"
},
password: {
required: "Please provide a password",
minLength: "Your password must be at least 5 characters long"
},
confirm_password: {
required: "Please provide a password",
minLength: "Your password must be at least 5 characters long",
equalTo: "Please enter the same password as above"
},
email: "Please enter a valid email address",
agree: "Please accept our policy"
}
});
2.内置多种基本校验的类型(包括与ajax结合的服务器断校验)
required,remote(ajax服务器端校验器),minlength,maxlength,rangelength,min,
max,range,email,url,date,,dateISO,dateDE,number,numberDE,digits,creditcard
,accept,equalTo
3.支持自定义校验类型.
可以通过
$.validator.addMethod("phone", function(value) {
return validatePhone(value);
}, 'Please enter correct format for referee phone!');
添加自己的校验器
4.支持多种校验器的声明方式.
1).利用函数声明
请参考1点
2).结合控件属性声明
<input type="radio" id="gender_male" value="m" name="gender" validate="required:true" />
3).结合控件的class属性声明
<textarea id="ccomment" name="comment" class="required">
这几种声明方式可以按照实际需要结合使用大大提高了灵活性.
附件是我利用struts2框架自己的form标签扩展的一个form标记的ftl模板,主要用于生成基于jquery的客户端校验标记,做的比较粗糙,重在抛砖引玉.
分享到:
相关推荐
【标题】"(六)struts2 spring3 mybatis-3.2.3 jquery.validationEngine ajax表单验证 数据库重复"所涉及的技术栈主要包括Struts2、Spring3、MyBatis3.2.3以及前端的jQuery.validationEngine和Ajax技术。...
Struts2提供了.struts2-jquery-validation-plugin等插件支持客户端验证。 2. **服务器端验证**:当客户端验证通过后,数据被发送到服务器,服务器端的验证是不可或缺的一环,因为它能防止恶意用户绕过客户端验证。...
Struts2是一个强大的MVC框架,用于构建企业级的Web应用程序,而jQuery则是一个高效的JavaScript库,简化了DOM操作、事件处理以及Ajax交互。在本项目中,我们关注的是将这两者结合使用,实现基于jQuery的...
总的来说,这个项目展示了如何利用Struts2.1作为后端服务,通过JSON进行数据传输,结合jQuery实现前端的异步用户名校验功能。这样的设计提高了用户体验,因为它允许用户在提交表单之前就得知用户名是否有效,而无需...
6. **插件更新**:Struts2支持多种插件,如 strut2-dojo-plugin、strut2-jquery-plugin 等,新版本可能会对这些插件进行更新,增加新的功能或改进现有功能。 7. **国际化和本地化**:Struts2支持多语言环境,新版本...
在Web开发中,jQuery Validate和Struts2是两个非常重要的工具。jQuery Validate是一个轻量级的JavaScript库,用于对HTML表单进行验证,确保用户输入的数据符合预设的规则。而Struts2是一个基于MVC设计模式的Java Web...
- Struts2支持使用JavaScript库如jQuery validate进行客户端校验,需要在JSP页面中引入相关的JS文件和编写对应的校验规则。 4. **校验结果处理** - 当输入数据未通过校验时,Struts2会自动将错误信息与相应的字段...
- Struts2可以与jQuery等JavaScript库集成,实现实时的客户端验证,提高用户体验。 9. **整合其他验证框架**: - Struts2还可以与Hibernate Validator或JSR-303 Bean Validation等其他验证框架集成,利用它们的...
8. **验证与错误处理**:Struts2提供了强大的验证框架,可以在服务器端进行数据校验,同时可以通过JSON返回错误信息,jQuery接收后显示给用户。 9. **jQuery UI和Struts2**:如果项目需求允许,还可以引入jQuery UI...
《jQuery Validate与Struts2整合应用详解》 在Web开发中,前端验证用户输入的数据是必不可少的一环,jQuery Validate插件就是一款强大的JavaScript验证工具,它可以帮助我们方便地实现表单验证。与此同时,Struts2...
Struts2、jQuery和Ajax是Web开发中的三大关键技术,它们结合使用可以构建高效、动态且用户友好的登录验证系统。以下是对这些技术及其在登录验证中的应用的详细说明。 Struts2是一个基于MVC(Model-View-Controller...
### Struts2入门教程知识点概览 #### 一、Struts2简介 - **起源与发展**:Struts2并非新生事物,而是建立在Struts1和WebWork基础上的一个Web应用框架。它融合了两者的优势,提供了更为强大的功能支持。 - **设计...
- **4.2 Struts2框架实现数据校验**:利用Struts2内置的验证机制简化验证过程。 #### 六、国际化实现 - **5.1 页面的国际化**:如何根据不同语言和地区显示不同的内容。 - **5.2 Action的国际化**:如何使Action...
通过Struts2的插件如Struts2 jQuery或Struts2 Dojo,可以实现无刷新的验证,即时向用户反馈错误,无需等待整个页面重新加载。 至于`client`这个文件,可能是博客作者提供的示例代码或资源,可能包含了Struts2表单...
Struts2和jQuery_Validator是两个在Web开发中常用的开源框架和库,它们分别用于MVC(模型-视图-控制器)架构的管理和前端表单验证。这篇博客文章"struts2和jquery_validator简单使用"可能详细介绍了如何将这两个工具...
首先,客户端验证通常使用JavaScript或jQuery等前端技术在用户提交表单前检查数据。这种验证方式能够提供即时反馈,提高用户体验,但它的安全性相对较低,因为用户可以通过禁用JavaScript绕过验证。在Struts2中,...
例如,使用jQuery或AngularJS等JavaScript库,配合Struts2的JSON插件,实现实时的查询和验证反馈。 总的来说,这个项目涵盖了Struts2框架的基础应用,包括Action设计、数据库操作、拦截器使用以及登录验证,是学习...
- Struts2提供了一套完整的验证框架,允许开发者通过XML或注解方式定义验证规则,进行客户端和服务器端的数据校验。错误信息可以通过`<s:fielderror>`标签显示。 7. **文件上传**: - Struts2提供了内置的支持...