当前位置: 首页 > news >正文

做网站备案地点广州工商局官网

做网站备案地点,广州工商局官网,做欧洲电商看哪个网站,网络系统管理与维护形考任务1目录 数据校验Validation 2.JSR 303 和 Hibernate 实现 数据校验Validation 1.数据校验介绍 数据校验分为客户端数据校验和服务端数据校验。都是为了保证数据完整性的。 客户端数据校验直接使用客户端脚本校验即可。例如在B/S模型项目中#xff0c;可以选择使用JavaScript… 目录 数据校验Validation 2.JSR 303 和 Hibernate 实现 数据校验Validation 1.数据校验介绍 数据校验分为客户端数据校验和服务端数据校验。都是为了保证数据完整性的。 客户端数据校验直接使用客户端脚本校验即可。例如在B/S模型项目中可以选择使用JavaScript或 jQuery进行客户端数据校验。 在京东商城中如果用户名和密码都没有输入直接点击登录会提示输入账户名和密码这就是客户端校验。 一个项目只有客户端数据校验是不严谨的为了防止不法人员直接通过URL或HTTP工具非法访问服务端发送非法数据保险起见服务端也应该具有数据校验这种客户端和服务端都有数据校验时称为双重校验。  在服务端可以使用Spring框架的数据校验。无论是web环境和是非web环境都可以使用。 在Spring框架的数据校验主要用于web层但是也可以应用在其他层。实现时需要借助Validator接口和 DataBinder进行实现。 2.Spring框架Validator接口使用  在代码之前我们先来介绍一下Validator接口 public interface Validator {/*** 判断校验的类如果支持对这个类的校验返回true否则返回false* return 是否支持当前类类型*/boolean supports(Class? clazz);/*** 校验的具体逻辑* param target 目标对象* param errors 校验不同过后的错误信息。可以通过ValidationUtils快速校验和设置错误信息*/void validate(Object target, Errors errors); }ValidationUtils是一个工具类可以快速的判断一个属性是否为null、长度为0、获取全是空格并把错误绑定上。 2.1 准备好一个实体类  还是使用People类进行测试。里面给定两个属性。 package com.tong.validation; import lombok.Data;Data public class People {private String name;private int age; }2.2 新建校验类 新建com.tong.validation.MyValidator。类名和类所在的包都是随意定义的没有强制要求。 public class MyValidator implements Validator {// 定义需要对哪个类进行校验Overridepublic boolean supports(Class? clazz) {if(clazz.equals(People.class)){return true;}return false;}// 具体校验规则// 简单判断是否为空可以使用工具类。其他的校验规则需要自己定义Overridepublic void validate(Object target, Errors errors) {// rejectIfEmpty(Errors对象,“校验的属性”,错误码可以设置为null“校验不通过时日志打印的消息”):为空校验不通过ValidationUtils.rejectIfEmpty(errors,name,null,姓名不能为空);// 如果希望判断其他逻辑需要手动编写Object ageValue errors.getFieldValue(age);// 获取age属性的值if(ageValue!null){Integer age Integer.parseInt(ageValue.toString());if(age1||age150){// rejectValue(校验的属性“错误码”,校验不通过时日志打印的消息)表示属性校验不通过errors.rejectValue(age,null,年龄必须是1-150之间的数字);}}} } 2.3 测试校验结果 在测试类中编写代码 Test void testValidator(){People people new People();DataBinder dataBinder new DataBinder(people);dataBinder.setValidator(new MyValidator());dataBinder.validate();BindingResult bindingResult dataBinder.getBindingResult();bindingResult.getAllErrors().forEach(err-{System.out.println(err);}); }2.JSR 303 和 Hibernate 实现 2.1 JSR介绍 JCP(Java Community Process)是一个开发的国际组织里面包含了一些Java开发者和其他被允许加入的成员。JCP组织主要负责对Java社区进行发展和更新。维护的规范包含J2ME、J2SE、J2EE、XML等相关规范。组织成员可以提交JSRJava Specification Requests,Java 规范提案待组织成员通过提案后会 把相关内容加入到下一个版本的规范中。 2.2 JSR 303介绍 JSR每个提案都带有数字名称。例如JSR 107、JSR 303等。一定要注意的是对于JSR提案并不是数字越大就需要包含前面内容。例如JSR 107主要是对缓存的提案、JSR 303是对数据校验的提案这两个提案 不存在包含和被包含的关系也不存在版本先后的关系。这个和我国政协会议是类似的第一个政协委员提出的建议叫做建议1、第二个政协委员提出的建议是建议2。建议1建议提高个税起征点、建议2建议国家分配对象。这俩建议是没有关系的。 JSR 303是Java EE 6规范的子规范。叫做Bean Validation。这些规范都是注解。各大公司可以针对这些规范做具体实现。 在Java开发中使用的最多的JSR 303具体实现就是Hibernate框架中Hibernate-Validator。它对JSR 303的 所有约定constraint都做了实现同时还进行了一定的扩充。 2.3 Hibernate Validator包含的内容  Hiberante 框架是Java行业曾经风靡一时的ORM框架目前在企业中只有一些老项目还在使用。 但Hibernate里面却有着一些很好的功能一直被使用。其中就包含hibernate-validator。 hibernate-validator对JSR 303实现都存在于依赖的Validation-api.jar的javax.validation.constraints包 中。 里面所有注解都包含message属性表示校验不通过后日志打印的信息。但是不建议设置因为默认的 提示信息就非常好。 Hibernate Validator对JSR 303具体实现的解释 Hibernate-Validator还有除了JSR 303的额外补充这些注解都在Hibernate-validator.jar的 org.hibernate.validator.constraints包中。  2.4 hibernate-validator使用  添加依赖 除了项目正常的依赖以外额外需要导入Hibernate-validator依赖和EL表达式依赖。 dependencygroupIdorg.hibernate.validator/groupIdartifactIdhibernate-validator/artifactIdversion8.0.0.Final/version /dependency dependencygroupIdjakarta.el/groupIdartifactIdjakarta.el-api/artifactIdversion5.0.1/version /dependency dependencygroupIdorg.glassfish/groupIdartifactIdjakarta.el/artifactIdversion5.0.0-M1/version /dependency在实体类属性上添加注解 示例中只是以NotNull和Length和Range进行举例。 1NotNull中message是可选属性如果设置了message在违反规则后日志会打印message中内容 2Length是设置字符串长度。 3Range 设置取值范围。可以用在int类型属性上。 所以name必须不能是null的且长度是2-6位。age取值范围必须是1~150 这些注解虽然可以放在方法、属性、其他注解、构造方法、参数上。我们多把这些注解放在实体类的属 性上面每个实体类属性都支持配置多个注解这些注解同时生效。 Data public class People {NotNull(message 姓名不能是null)Length(min 2,max 6,message 长度应该是2-6位)private String name;Range(min1,max150)private int age; } 编写测试类测试hibernate-validator Test void testHibernateValidator(){ValidatorFactory factory Validation.buildDefaultValidatorFactory();Validator validator factory.getValidator();People people new People();SetConstraintViolationPeople constraintViolations validator.validate(people);for (ConstraintViolationPeople constraintViolation : constraintViolations){System.out.println(错误 constraintViolation.getMessage());} } 运行后控制台输出信息 错误不能为null 错误需要在1和150之间 3.Spring框架对Hibernate-validator的集成  在Spring框架中有LocalValidatorFactoryBean类这个类实现了ValidatorFactory接口和Validator接口。所以我们在Spring框架中可以直接使用这个类作为Validator实例化的对象。 通过使用LocalValidatorFactoryBean可以简化Hibernate实例化Validator的两行代码其他使用方式都一样。 public class LocalValidatorFactoryBean extends SpringValidatorAdapter implements ValidatorFactory, ApplicationContextAware, InitializingBean, DisposableBean { 3.1 保证项目包含hibernate-validator依赖 在上面学习Hibernate-validator使用时已经导入过了 dependencygroupIdorg.hibernate.validator/groupIdartifactIdhibernate-validator/artifactIdversion8.0.0.Final/version /dependency dependencygroupIdjakarta.el/groupIdartifactIdjakarta.el-api/artifactIdversion5.0.1/version /dependency dependencygroupIdorg.glassfish/groupIdartifactIdjakarta.el/artifactIdversion5.0.0-M1/version /dependency 3.2 创建一个类 创建com.tong.validation.Student添加几个注解进行测试 Data public class Student {NotBlankprivate String name;Positiveprivate int age; }3.3 编写配置 创建配置文件applicationContext-validation.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdbean idvalidator classorg.springframework.validation.beanvalidation.LocalValidatorFactoryBean/beanbean idstudent classcom.tong.validation.Student/bean /beans 3.4 编写测试类 在com.tong.test.ValidationTest中测试 SpringJUnitConfig ContextConfiguration(classpath:applicationContext-validation.xml) public class ValidationTest {AutowiredLocalValidatorFactoryBean validator;AutowiredStudent student;Testvoid test(){SetConstraintViolationStudent constraintViolations validator.validate(student);for (ConstraintViolationStudent constraintViolation : constraintViolations) {System.out.println(错误 constraintViolation.getMessage());}} }3.5 观察运行结果 在IDEA控制台可以看到 错误不能为空 错误必须是正数
http://www.pierceye.com/news/222015/

相关文章:

  • 72建站网如何建设一个药材网站做网站的费用 可以抵扣吗
  • 四川通信建设工程有限公司网站做企业网站需要服务器么
  • 福田建网站费用烟台招远网站建设
  • 上海网站开发建设电话丹东市做网站
  • 外贸网站 免费模板 使用 zencart做新闻类网站
  • 呼和浩特网站推广大德通网站建设
  • 携程旅行网站建设上海城市建设大学网站
  • 360网站收录做网站设计用什么软件
  • 微信html5模板网站最新网站建设软件有哪些
  • 芝麻开门网站建设无极电影网怎样下载电影
  • 网站开发 书籍首页关键词优化价格
  • 网站建设建站流程方案百度一下你就知道下载安装
  • 大型网站快速排名学生做的网站能攻击
  • 怎样做加入购物车的网站wordpress SQL 配置
  • 网站设计原型品牌建设人才队伍建设
  • 常熟网站网站建设电商购物平台软件开发
  • 网站页尾信息网站建设费用摊销年限
  • 制作个人网站要多少钱重庆工程信息官网
  • 那里建设网站好珠海网站建设公司哪个好
  • 从化市营销型网站建设工业和信息化部五系网站建设
  • 网站建设的开发方法有哪些wordpress 企业站主题
  • 长治网站建设案例找人做一个小网站需要多少钱
  • html5 网站布局应用教程韩雪冬 网站
  • 行业网站维护印刷公司网站模板
  • 做自媒体需要用的网站wordpress更换语言包
  • 电子书推送网站怎么做重庆产品网站推广
  • 免费做课设的网站织梦本地安装网站
  • 龙岗做网站公司szaow品牌网站建设公司哪好
  • 设计网站项目描述怎么样下载网页上的视频
  • 比较开放的浏览器清远网站seo