数据验证,包括客户端验证(js|jq)+服务器验证(java),客户端验证能够提供更好的体验,但是不够安全。永远不要将验证寄托于客户端验证。服务器端验证才永远安全!
spring-MVC的验证:
springmvc 和 hibernate-validation验证框架的整合
首先要根据spring的版本导入不同版本的hibernate-validation的jar包
springmvc 3.x
hibernate-validator-4.1.0.Final.jar
validation-api-1.0.0.GA.jar
jboss-logging-3.1.0.GA.jar
springmvc 4.x
classmate-1.3.1.jar
hibernate-validator-5.3.1.Final.jar
jboss-logging-3.3.0.Final.jar
validation-api-1.1.0.Final.jar
hibernate-validation验证框架所提供的关于验证的注解
* @Null 被注释的元素必须为 null
* @NotNull 被注释的元素必须不为 null
* @AssertTrue 被注释的元素必须为 true
* @AssertFalse 被注释的元素必须为 false
* @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
* @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
* @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
* @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
* @Size(max=, min=) 被注释的元素的大小必须在指定的范围内
* @Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
* @Past 被注释的元素必须是一个过去的日期
* @Future 被注释的元素必须是一个将来的日期
* @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式
* Hibernate Validator 附加的 constraint
* @NotBlank(message =) 验证字符串非null,且长度必须大于0
* @Email 被注释的元素必须是电子邮箱地址
* @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
* @NotEmpty 被注释的字符串的必须非空
* @Range(min=,max=,message=) 被注释的元素必须在合适的范围内
* @URL(protocol=,host,port)//检查是否是一个有效的URL,如果提供了protocol,host等,则该URL还需满足提供的条件
验证的使用步骤
1>.导入验证相关的jar包
2>.在实体类的相应属性上添加注解
@NotBlank(message="商品名称不能为空")
private String goodsName;
@NotNull(message="商品价格不能为空")
@DecimalMin(value="0", message="价格不能小于0")
private Double price;
@Min(value=0, message="库存数量不能小于0")
private Integer storage;
3>.在springmvc的控制器方法上,添加注解和参数
@RequestMapping(value="/add", method=RequestMethod.POST)
public String add(@Validated @ModelAttribute("goods") Goods goods, BindingResult validResult){
if(validResult.hasFieldErrors()==true){
return "goods/add";
}
goods.setGoodsId(generateGoodsId());
goodsList.add(goods);
return "redirect:list";
}
注意:BindingResult参数必须紧跟被验证的参数
分享到:
相关推荐
《网上书城 Spring-MVC》项目是基于Spring-MVC框架构建的一个典型电子商务平台,它展示了如何使用Spring-MVC来实现高效、灵活的Web应用程序开发。Spring-MVC是Spring框架的一部分,专门用于处理Web层的业务,提供了...
Spring MVC是Spring框架的一个核心模块,用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构,使得开发者可以将业务逻辑、数据展示和用户界面分离,从而实现更清晰、可维护的代码结构。在Spring MVC中,`xsd...
Spring MVC 是 Spring 框架的一个重要组成部分,用于构建基于 Java 的 Web 应用程序。这个官方中文文档详细地介绍了如何使用 Spring MVC 来开发高效、可维护的 MVC(Model-View-Controller)架构的应用。Spring MVC ...
在本教程中,我们将深入探讨如何使用Spring-MVC框架来开发一个简单的项目实例。Spring-MVC是Spring框架的一个模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构支持。它使得开发者可以将业务逻辑、数据访问...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。在本项目"spring-mvc-study.zip"中,我们可以深入理解并实践Spring MVC的核心概念和技术。 首先,Spring MVC是Spring...
在"spring-mvc-showcase"项目中,Spring MVC提供了方便的测试支持,如MockMvc,可以模拟HTTP请求并验证Controller的响应。此外,日志和调试工具也能帮助开发者跟踪和定位问题。 综上所述,"spring-mvc-showcase...
Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...
Spring Web模块和Spring Web MVC模块是Spring框架中的两个关键组成部分,它们在构建Web应用程序时起着至关重要的作用。 Spring Web模块(spring-web-5.2.3.RELEASE.jar)主要负责提供Web相关的功能支持,包括HTTP...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。这个压缩包"translation-spring-mvc-4-documentation, Spring MVC 4.2.4 RELEASE 中文文档完整翻译稿.zip"包含了Spring MVC 4.2.4版本的官方文档...
标题中的"spring.jar"、"spring-webmvc-struts.jar"和"spring-webmvc.jar"都是Spring框架相关的Java库文件,通常以.jar结尾的文件是Java的归档文件,包含了类、资源和元数据,用于Java应用程序的运行。这些文件在...
Spring 框架是 Java 开发中的核心框架之一,它为构建可维护、模块化的应用程序提供了强大的支持。在提供的信息中,我们关注的是 Spring 的一些关键组件和它们对应的 XML 配置文件,这些文件通常用于定义和管理 ...
SSM框架,全称为Spring、Spring-MVC和MyBatis,是Java开发Web应用时常用的三大框架集成。这个"SSM框架样例"提供了一个基础的学习平台,旨在帮助初学者理解这三个框架如何协同工作,以及如何在实际项目中进行集成。 ...
1. **Maven 构建系统**:Spring-mvc-showcase 使用 Maven 进行项目构建和管理,通过在 pom.xml 文件中定义依赖关系,可以轻松地集成 Spring MVC 及其相关库,如 Spring Core、Spring Web MVC、Jackson JSON 处理库等...
Spring MVC 是 Spring 框架的一个重要组成部分,用于构建基于模型-视图-控制器(Model-View-Controller)架构的Web应用程序。这个官方实例“spring-mvc-showcase”旨在为开发者提供一个清晰的理解和实践Spring MVC...
在Web开发中,Spring-MVC、MyBatis和MySQL的组合是常见的技术栈,它们为构建高效、可维护的Web应用程序提供了强大的支持。本实例将深入探讨这三者如何协同工作,以实现数据的增删查改(CRUD)操作。 首先,Spring-...
在这个过程中,Spring MVC提供了丰富的自定义点,如拦截器(Interceptor)可以扩展处理逻辑,数据绑定和验证可以确保输入的有效性,异常处理机制可以优雅地管理错误情况。 在"mdeinum-pro-spring-mvc-code"项目中,...
在本讨论中,我们将深入探讨两个核心组件——`spring-web.jar`和`spring-webmvc.jar`,它们在Spring MVC框架中扮演着关键角色。 首先,`spring-web.jar`是Spring框架的Web层组件,它提供了与Web相关的功能。这个库...
标题“Spring-MVC+Spring-IOC+Spring-JdbcTemple”揭示了这个项目或教程是关于如何集成并使用Spring框架的三个核心模块:Spring MVC、Spring IOC(Inversion of Control,控制反转)以及Spring JDBC Template。...
在IT行业中,Spring MVC和jQuery是两个非常重要的技术框架,它们在Web开发中扮演着关键角色。本项目“spring-mvc-jquery.zip”是关于如何将Spring MVC 3.0框架与jQuery进行整合的一个示例,旨在帮助开发者理解这两者...