项目中时常会用到一些验证手段...由于在开发前需要对一些技术的定位!所以一般选择固定的验证框架和技术.
我在前台验证中使用的是jquery_validator.这是个容易上手的框架.个人感觉它和struts2结合在一起非常不错.下面讲下使用的过程.
准备的jar包:struts2可以到
http://struts.apache.org/download.cgi下载
juery_validator可以到
http://plugins.jquery.com/project/validate下载
jquery_validator的介绍:
一.默认校验规则
(1)required:true 必输字段
(2)remote:"check.php" 使用ajax方法调用check.php验证输入值
(3)email:true 必须输入正确格式的电子邮件
(4)url:true 必须输入正确格式的网址
(5)date:true 必须输入正确格式的日期
(6)dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)number:true 必须输入合法的数字(负数,小数)
(8)digits:true 必须输入整数
(9)creditcard: 必须输入合法的信用卡号
(10)equalTo:"#field" 输入值必须和#field相同
(11)accept: 输入拥有合法后缀名的字符串(上传文件的后缀)
(12)maxlength:5 输入长度最多是5的字符串(汉字算一个字符)
(13)minlength:10 输入长度最小是10的字符串(汉字算一个字符)
(14)rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)range:[5,10] 输入值必须介于 5 和 10 之间
(16)max:5 输入值不能大于5
(17)min:10 输入值不能小于10
默认的提示在jquery_validate.js源码中可以看到是英文的提示:
messages: {.....}
可以自己进行修改.不过jquery_validate本来就提供了各个语言的包就在下载的jquery.validate.zip中localization包下.使用中文可以导入messages_cn.js;
下面是例子的开始:
整个项目的部署过程就不说了。下面会有例子上传
讲些重点.
reg.jsp:
<link href="css/jquery_validate.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery_validate.js"></script>
<script type="text/javascript" src="js/jquery.metadata.js"></script>
</head>
<script type="text/javascript">
$(function() {
$("#jvForm").validate();
});
</script>
<body>
<form action="" method="post" id="jvForm">
<table>
<tr>
<td>name:</td>
<td><input type="text" name="bean.name" class="{required:true,remote:'admin/core/ajax/checkUserName.action',messages:{remote:'用户名已存在!'}}"/></td>
</tr>
<tr>
<td>password:</td>
<td><input type="password" name="bean.password" class="required"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
首先引入jquery_validate.css.对提示的内容进行css格式的修改.
jquery.metadata.js可以提供
使用class="{}"的方式,可以使用如下的方法,修改提示内容:
class="{required:true,minlength:5,messages:{required:'请输入内容'}}"在使用equalTo关键字时,后面的内容必须加上引号,如下代码:
class="{required:true,minlength:5,equalTo:'#password'}"
它的其他几种表现方式就不介绍了.因为各个感觉这种表现形式是最好用的.
用户名的检测中我们做了一个模拟检验用户名是否存在(这种操作在项目中也是比较常见.对于一些名字不可以重复的进行提示).我们访问了checkName.action.下面看看相应的Action实体:
AdminAjaxAct
public class AdminAjaxAct implements Action{
/**
* 判断前台用户注册
*
* @return
*/
public String checkUserName() {
String username = bean.getName();
boolean b = true;
if (StringUtils.isBlank(username)) {
b = false;
}
if (b) {
b = "test".equals(username);
}
//如果用户名存在.就代表检验用户存在
//所以用户不能提交
return renderText(b ? "false" : "true");
}
/**
* 绕过Template,直接输出内容的简便函数.对常用的数据进行抽取.提高
*提高重用性
*/
protected String render(String text, String contentType) {
try {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType(contentType);
response.getWriter().write(text);
} catch (IOException e) {
}
return null;
}
/**
* 直接输出字符串.
*/
protected String renderText(String text) {
return render(text, "text/plain;charset=UTF-8");
}
private Admin bean;
public Admin getBean() {
return bean;
}
public void setBean(Admin bean) {
this.bean = bean;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
StringUtils:apache提供的工具包(挺好用).因为要符合jquery_validator的形式所以输出的要为true.false方便以信息的形式进行提示.
从中就可以感觉到.在使用jquery_validator的时候使用struts2的OGNL表达式的原型完成可以整在一起.他传递参数也同样是使用是将对象的引用值用点串联起来.如bean.name;
jquery_validator也可以给用户自己扩展可以参考
http://www.f6n.net/blog/web/200901129415.html
struts2的包自己下载咯
测试时候使用用户名输入test提示用户名已被使用.这可以应用到数据库
分享到:
相关推荐
Struts2和jQuery是两种非常流行的Java Web开发技术。Struts2是一个强大的MVC框架,用于构建企业级的Web应用程序,而jQuery则是一个高效的JavaScript库,简化了DOM操作、事件处理以及Ajax交互。在本项目中,我们关注...
2. **表单验证**:展示了基于Struts2的FieldAware和Validator插件的表单验证机制。 3. **拦截器的使用**:包括预处理和后处理,如LoggingInterceptor、ValidationInterceptor等。 4. **OGNL表达式**:在JSP页面中...
同时,Struts2的Validator框架可以进行前端验证,配合jQuery的错误提示,增强用户体验。 4. **Ajax局部刷新**:利用jQuery的DOM操作和Struts2的Ajax结果类型,可以实现页面的局部刷新,提高应用的响应速度。 5. **...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且健壮的企业级应用程序。在Struts2中,校验器(Validator)是处理用户输入验证的核心组件,确保提交到服务器的数据符合预设的业务规则。这篇博客文章...
7. **struts2-json-plugin.jar** 和 **struts2-jquery-plugin.jar**:这些插件支持JSON数据格式的处理,便于创建AJAX应用。 8. **struts2-tiles-plugin.jar**:Tiles是一个布局和视图管理框架,与Struts2结合使用,...
- Struts2支持使用JavaScript库如jQuery validate进行客户端校验,需要在JSP页面中引入相关的JS文件和编写对应的校验规则。 4. **校验结果处理** - 当输入数据未通过校验时,Struts2会自动将错误信息与相应的字段...
在提供的压缩包文件"Form_Validation_Struts2_Ant"中,可能包含了使用Ant构建工具配置的Struts2表单验证示例项目,包括Action类、XML配置文件、JSP页面和相关的验证规则定义。通过分析这个示例,可以更好地理解...
总的来说,Struts的Validator框架提供了强大的表单验证功能,可以帮助开发者有效地管理和控制用户输入,确保数据的准确性和一致性。通过理解和运用这个框架,可以提升Web应用的质量和用户体验,同时减少服务器端的...
- `ognl.jar`:Object-Graph Navigation Language,Struts2使用的表达式语言,用于数据绑定和传递。 5. **验证框架**: - `struts2-validation-plugin.jar`:提供了基于Hibernate Validator的表单验证功能。 6. ...
jqueryvalidator+spring3.0+struts2.18+hibernate3(修正版)上次的程序有错误。是以前调试时候的。这次保证能够运行的起。本程序受http://www.gbsou.com/版主的巨大帮助深表感激。
- **验证和异常处理**:可能包括Struts1.2的Validator框架使用,以及如何捕获和处理服务端的异常信息,通过Ajax返回给前端。 此案例对于学习和理解这三种技术的协同工作非常有帮助,特别是对于初学者,可以清晰地...
5. **依赖管理**:`xwork-core.jar` 是Struts2的基础,包含Action、Result、Validator等核心组件,同时处理转换、验证和异常管理。 6. **标签库**:`struts2-tiles-plugin.jar` 和 `struts2-struts1-plugin.jar` ...
通过Struts2的插件如Struts2 jQuery或Struts2 Dojo,可以实现无刷新的验证,即时向用户反馈错误,无需等待整个页面重新加载。 至于`client`这个文件,可能是博客作者提供的示例代码或资源,可能包含了Struts2表单...
Struts2通过`FileUploadInterceptor`和`FileDownloadResult`支持文件的上传和下载,使得处理文件数据变得简单。 #### 十一、视图技术 Struts2支持多种视图技术,包括JSP、Velocity和FreeMarker,允许开发者根据...
Struts2是一个强大的Java EE应用程序框架,用于构建和维护可扩展、交互性强的Web应用程序。Struts2在经典的Struts1框架基础上进行了大量的改进和增强,提供了更灵活的MVC(Model-View-Controller)设计模式实现。...
在Struts2中,可以使用Tiles和FreeMarker模板来创建自定义的客户端验证规则。 服务器端验证是更安全的方式,因为它不会依赖于客户端的状态。Struts2提供了一套完善的服务器端验证机制,包括Action级别的验证和Field...
### 知识点一:Struts2入门(MVC HelloWorld) #### 1.1 Struts2简介 ...以上就是关于“研磨Struts2”的主要知识点梳理,通过深入学习这些内容,开发者可以更好地掌握Struts2框架的核心技术和实践技巧。
使用`struts2-jquery-plugin`或`struts2-dojo-plugin`,可以轻松实现异步验证。 8. **性能优化** 尽管验证提高了应用的健壮性,但过度验证可能会降低性能。因此,应明智地选择验证策略,避免不必要的服务器负载。 ...