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

怎么自己创造网站wordpress 插件推荐

怎么自己创造网站,wordpress 插件推荐,软件开发定制图片,中小学网站建设探讨这篇文章总结了一些简单易用的示例#xff0c;这些示例说明了您想使用Java Beans Validation API#xff08;JSR 349#xff0c;JSR 303#xff09;进行的最常见操作。 记住#xff0c;Beans Validation独立于Java EE。 尽管它是作为Java EE兼容服务器的一部分内置的… 这篇文章总结了一些简单易用的示例这些示例说明了您想使用Java Beans Validation APIJSR 349JSR 303进行的最常见操作。 记住Beans Validation独立于Java EE。 尽管它是作为Java EE兼容服务器的一部分内置的但该API也可以在Java SE应用程序中轻松使用。 所有这些示例都使用Java SE。 要求 我使用以下主要技术完成了本文的所有工作。 您可能可以使用不同的技术或版本来做相同的事情但不能保证。 Java 1.8.0_65_x64 NetBeans 8.2 Maven 3.0.5与NetBeans捆绑在一起 dependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactIdversion1.1.0.Final/version /dependency dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-validator/artifactIdversion5.1.2.Final/version /dependency dependencygroupIdjavax.el/groupIdartifactIdjavax.el-api/artifactIdversion2.2.4/version /dependency dependencygroupIdorg.glassfish.web/groupIdartifactIdjavax.el/artifactIdversion2.2.4/version /dependency dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope /dependency下载 访问我的GitHub页面https://github.com/mjremijan以查看我所有的开源项目。 这篇文章的代码位于 https : //github.com/mjremijan/thoth-beanvalidation 基本 此示例显示了使用内置的标准约束和内置的标准验证器进行Bean验证的基础。 清单1.1 –验证的Bean package org.thoth.beanvalidation.basics;import javax.validation.constraints.NotNull;public class Widget {NotNullprotected String name;public String getName() {return name;}public void setName(String name) {this.name name;} } 清单1.2 –如何验证 package org.thoth.beanvalidation.basics;import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import org.junit.Assert; import org.junit.Before; import org.junit.Test;public class WidgetTest {protected Validator validator;Beforepublic void before() {validator Validation.buildDefaultValidatorFactory().getValidator();}Testpublic void violations_size() {// setupWidget w new Widget();// actionSetConstraintViolationWidget violations validator.validate(w);// assertAssert.assertEquals(1, violations.size());}Testpublic void violation_message() {// setupWidget w new Widget();// actionSetConstraintViolationWidget violations validator.validate(w);// assertConstraintViolationWidget v violations.stream().findFirst().get();Assert.assertEquals(may not be null, v.getMessage());}Testpublic void violation_messageTemplate() {// setupWidget w new Widget();// actionSetConstraintViolationWidget violations validator.validate(w);// assertConstraintViolationWidget v violations.stream().findFirst().get();Assert.assertEquals({javax.validation.constraints.NotNull.message}, v.getMessageTemplate());}Testpublic void violation_propertyPath() {// setupWidget w new Widget();// actionSetConstraintViolationWidget violations validator.validate(w);// assertConstraintViolationWidget v violations.stream().findFirst().get();Assert.assertEquals(name, v.getPropertyPath().toString());} }自定义消息模板 本示例说明了如何使用自定义错误消息而不是使用内置标准错误消息来定制内置标准约束。 清单2.1 – ValidationMessages.properties Candy.name.NotNullA candy name is required. 清单2.2 –验证的Bean package org.thoth.beanvalidation.custommessage;import javax.validation.constraints.NotNull;public class Candy {NotNull(message {Candy.name.NotNull})protected String name;public String getName() {return name;}public void setName(String name) {this.name name;} } 清单2.3 –如何验证 package org.thoth.beanvalidation.custommessage;import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test;public class CandyTest {protected static Validator validator;BeforeClasspublic static void before() {validator Validation.buildDefaultValidatorFactory().getValidator();}Testpublic void notnull_violation_message() {// setupCandy candy new Candy();// actionSetConstraintViolationCandy violations validator.validate(candy);// assertConstraintViolationCandy v violations.stream().findFirst().get();Assert.assertEquals(A candy name is required., v.getMessage());}Testpublic void notnull_violation_messageTemplate() {// setupCandy candy new Candy();// actionSetConstraintViolationCandy violations validator.validate(candy);// assertConstraintViolationCandy v violations.stream().findFirst().get();Assert.assertEquals({Candy.name.NotNull}, v.getMessageTemplate());} }具有可变替换的自定义消息模板 此示例说明如何使用自定义错误消息配置内置的标准约束该消息中包含变量值该变量值在运行时由Bean验证替换。 可以替换的变量示例包括已验证的实际值以及Size约束的min和max属性。 清单3.1 – ValidationMessages.properties Candy.name.Size.messageThe candy name ${validatedValue} is invalid. It must be between {min} and {max} characters long 清单3.2 –验证的Bean package org.thoth.beanvalidation.variablereplacement;import javax.validation.constraints.Size;public class Candy {private String name;Size(message {Candy.name.Size.message}, min5, max10)public String getName() {return name;}public void setName(String name) {this.name name;} } 清单3.3 –如何验证 package org.thoth.beanvalidation.variablereplacement;import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.thoth.beanvalidation.variablereplacement.Candy;public class CandyTest {protected static Validator validator;BeforeClasspublic static void before() {validator Validation.buildDefaultValidatorFactory().getValidator();}Testpublic void does_the_constraint_have_the_correct_messageTemplate() {// setupCandy candy new Candy();candy.setName();// actionSetConstraintViolationCandy violations validator.validate(candy);// assertConstraintViolationCandy v violations.stream().findFirst().get();Assert.assertEquals({Candy.name.Size.message}, v.getMessageTemplate());}Testpublic void is_the_message_correct_if_size_is_too_small() {// setupCandy candy new Candy();candy.setName(foo);// actionSetConstraintViolationCandy violations validator.validate(candy);// assertConstraintViolationCandy v violations.stream().findFirst().get();Assert.assertEquals(The candy name \foo\ is invalid. It must be between 5 and 10 characters long, v.getMessage());}Testpublic void is_the_message_correct_if_size_is_too_big() {// setupCandy candy new Candy();candy.setName(123456789|1);// actionSetConstraintViolationCandy violations validator.validate(candy);// assertConstraintViolationCandy v violations.stream().findFirst().get();Assert.assertEquals(The candy name \123456789|1\ is invalid. It must be between 5 and 10 characters long, v.getMessage());} }自定义属性验证器 本示例说明如何为类的属性创建您自己的约束和您自己的验证器。 清单4.1 – ValidationMessages.properties org.thoth.beanvalidation.propertyvalidator.Excludes.messageThe value ${validatedValue} is one of {value} which is forbidden. 清单4.2 –约束注释 package org.thoth.beanvalidation.propertyvalidator;import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.validation.Constraint;Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy {ExcludesValidator.class}) Documented public interface Excludes {String message() default {org.thoth.beanvalidation.propertyvalidator.Excludes.message};Class[] groups() default {};Class[] payload() default {};String[] value() default {}; } 清单4.3 –约束验证器 package org.thoth.beanvalidation.propertyvalidator;import java.util.Arrays; import java.util.List; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext;public class ExcludesValidatorimplements ConstraintValidator Excludes, String {private ListString excludeTheseValues;Overridepublic void initialize(Excludes arg) {String[] strarr arg.value();if (strarr null) {strarr new String[]{};}excludeTheseValues Arrays.asList(strarr);}Overridepublic boolean isValid(String value, ConstraintValidatorContext cvc) {if (excludeTheseValues.contains(value)) {return false;} else {return true;}} } 清单4.4 –验证的Bean package org.thoth.beanvalidation.propertyvalidator;public class Candy {private String name;public Candy(String name) {this.name name;}Excludes({foo, bar, shrubbery})public String getName() {return name;} } 清单4.5 –如何验证 package org.thoth.beanvalidation.propertyvalidator;import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import static org.junit.Assert.assertEquals; import org.junit.BeforeClass; import org.junit.Test;public class CandyTest {protected static Validator validator;BeforeClasspublic static void before() {validator Validation.buildDefaultValidatorFactory().getValidator();}Testpublic void a_non_excludeded_name_should_not_give_you_a_constraint_violation() {// setupCandy candy new Candy(hershey);// actionSetConstraintViolationCandy violations validator.validate(candy);// assertassertEquals(0, violations.size());}Testpublic void do_you_get_a_constraint_violation_if_you_use_excluded_name_foo() {// setupCandy candy new Candy(foo);// actionConstraintViolationCandy violation validator.validate(candy).iterator().next();// assertassertEquals({org.thoth.beanvalidation.propertyvalidator.Excludes.message}, violation.getMessageTemplate());assertEquals(The value \foo\ is one of [foo, bar, shrubbery] which is forbidden., violation.getMessage());}Testpublic void do_you_get_a_constraint_violation_if_you_use_excluded_name_bar() {// setupCandy candy new Candy(bar);// actionConstraintViolationCandy violation validator.validate(candy).iterator().next();// assertassertEquals({org.thoth.beanvalidation.propertyvalidator.Excludes.message}, violation.getMessageTemplate());assertEquals(The value \bar\ is one of [foo, bar, shrubbery] which is forbidden., violation.getMessage());}Testpublic void do_you_get_a_constraint_violation_if_you_use_excluded_name_shrubbery() {// setupCandy candy new Candy(shrubbery);// actionConstraintViolationCandy violation validator.validate(candy).iterator().next();// assertassertEquals({org.thoth.beanvalidation.propertyvalidator.Excludes.message}, violation.getMessageTemplate());assertEquals(The value \shrubbery\ is one of [foo, bar, shrubbery] which is forbidden., violation.getMessage());} }自定义类验证器 本示例说明如何创建适用于整个类的约束和验证器。 清单5.1 – ValidationMessages.properties org.thoth.beanvalidation.classvalidator.IdentificationExists.messageAt least one of social security number, drivers license number, or passport number must exist. 清单5.2 –约束注释 package org.thoth.beanvalidation.classvalidator;import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.validation.Constraint; import javax.validation.Payload;Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy {IdentificationExistsValidator.class}) Documented public interface IdentificationExists {String message() default {org.thoth.beanvalidation.classvalidator.IdentificationExists.message};Class?[] groups() default {};Class? extends Payload[] payload() default {}; } 清单5.3 –约束验证器 package org.thoth.beanvalidation.classvalidator;import java.util.Objects; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext;public class IdentificationExistsValidator implements ConstraintValidatorIdentificationExists, Identification {Overridepublic void initialize(IdentificationExists a) {}Overridepublic boolean isValid(Identification t, ConstraintValidatorContext cvc) {boolean invalid Objects.equals(t.getDriversLicenseNumber(), null)Objects.equals(t.getPassportNumber(), null)Objects.equals(t.getSocialSecurityNumber(), null);return !invalid;} } 清单5.4 –验证的Bean package org.thoth.beanvalidation.classvalidator;IdentificationExists public class Identification {protected String socialSecurityNumber;protected String driversLicenseNumber;protected String passportNumber;public String getSocialSecurityNumber() {return socialSecurityNumber;}public void setSocialSecurityNumber(String socialSecurityNumber) {this.socialSecurityNumber socialSecurityNumber;}public String getDriversLicenseNumber() {return driversLicenseNumber;}public void setDriversLicenseNumber(String driversLicenseNumber) {this.driversLicenseNumber driversLicenseNumber;}public String getPassportNumber() {return passportNumber;}public void setPassportNumber(String passportNumber) {this.passportNumber passportNumber;} } 清单5.5 –如何验证 package org.thoth.beanvalidation.classvalidator;import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import org.junit.Assert; import org.junit.Before; import org.junit.Test;public class IdentificationTest {protected Validator validator;Beforepublic void before() {validator Validation.buildDefaultValidatorFactory().getValidator();}Testpublic void violation_if_all_are_missing() {// setupIdentification id new Identification();// actionSetConstraintViolationIdentification violations validator.validate(id);// assertConstraintViolationIdentification v violations.stream().findFirst().get();Assert.assertEquals(At least one of social security number, drivers license number, or passport number must exist., v.getMessage());}Testpublic void no_violation_if_social_security_number_exists() {// setupIdentification id new Identification();id.setSocialSecurityNumber(a);// actionSetConstraintViolationIdentification violations validator.validate(id);// assertAssert.assertEquals(0, violations.size());}Testpublic void no_violation_if_drivers_license_number_exists() {// setupIdentification id new Identification();id.setDriversLicenseNumber(a);// actionSetConstraintViolationIdentification violations validator.validate(id);// assertAssert.assertEquals(0, violations.size());}Testpublic void no_violation_if_passport_number_exists() {// setupIdentification id new Identification();id.setPassportNumber(a);// actionSetConstraintViolationIdentification violations validator.validate(id);// assertAssert.assertEquals(0, violations.size());} }组序列短路 本示例说明了在进行验证时如何使用GroupSequence作为短路。 这意味着如果第一轮验证未通过则验证“短路”并且不会执行第二轮验证。 默认情况下所有bean验证约束都放入“默认”组序列中。 但是通过将GroupSequence放在类上如下所示仅针对该类重新定义“默认”组序列。 在下面的类上使用GroupSequence 其基本功能是在bean验证期间第一个操作是验证该类中未专门分配组的所有约束。 首先是NotNull约束。 如果所有这些都OK那么第二个操作是验证Second.class组中的所有约束。 那就是Size约束。 如果所有这些都OK那么第三Third.class操作将验证Third.class组中的所有约束。 那就是Pattern约束。 如果某个小组在任何时候都无法通过验证则验证将“短路”并且验证不再进行。 清单6.1 –验证的Bean package org.thoth.beanvalidation.groupsequence;import javax.validation.GroupSequence; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size;GroupSequence({Candy.class, Candy.Second.class, Candy.Third.class}) public class Candy {protected interface Second {}protected interface Third {}private String name;NotNull()Size(min4, max10, groups Second.class )Pattern(regexp [a-z], groups Third.class)public String getName() {return name;}public void setName(String name) {this.name name;} } 清单6.2 –如何验证 package org.thoth.beanvalidation.groupsequence;import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test;public class CandyTest {private Validator validator;Beforepublic void before() {validator Validation.buildDefaultValidatorFactory().getValidator();}Testpublic void short_circuits_first_if_null() {// setupCandy w new Candy();// actionSetConstraintViolationCandy violations// validator.validate(w, CheckGroupSequence.class); validator.validate(w);// assertassertEquals(1, violations.size());assertEquals(may not be null, violations.iterator().next().getMessage());}Testpublic void short_circut_if_size_is_in_violation() {// setupCandy w new Candy();w.setName(foo);// actionSetConstraintViolationCandy violations validator.validate(w);// assertassertEquals(1, violations.size());assertEquals(size must be between 4 and 10, violations.iterator().next().getMessage());}Testpublic void short_circuit_if_pattern_is_in_violation() {// setupCandy w new Candy();w.setName(SHRUBBERY);// actionSetConstraintViolationCandy violations validator.validate(w);// assertassertEquals(1, violations.size());assertEquals(must match \[a-z]\, violations.iterator().next().getMessage());} }摘要 Bean验证是一种功能强大的API尤其是因为它可以在Java EE服务器或独立的Java SE应用程序中使用。 这只是Bean验证API基础知识的简短摘要但是通常它足以涵盖开发人员有关如何使用它的大多数问题。 翻译自: https://www.javacodegeeks.com/2017/07/java-bean-validation-basics.html
http://www.pierceye.com/news/613584/

相关文章:

  • 深圳哪家公司做网站好购物网站开发问题域分析
  • 简单个人网站wordpress插件查询
  • 上海做网站搜索一下马来西亚的网站建设的竞争对手的分析
  • 建站优化易下拉系统163邮箱登录注册
  • c 做网站电子商务平台中搜索词拆解包括
  • 腾讯云10g数字盘做网站够么四川省建设人才网
  • 批量 网站标题中海园林建设有限公司网站
  • 鲜花网站数据库建设免费律师咨询
  • 团队网站建设哪家便宜制作公司网站流程
  • 青龙桥网站建设企业网页是什么
  • 上海网站建设备案号怎么恢复法律咨询网站开发
  • 烟台做网站价格动力网站建设
  • 北戴河网站建设墨刀制作网页教程
  • 成都网站设计开发做得好微信商城怎么开发
  • 江西省城乡建设培训网-官方网站上海建设集团有限公司
  • 凡科网站设计模板grimhelm wordpress
  • 自己做的网站不备案行吗建筑工程集团有限公司
  • 网站初期 权重怎么做彩票类网站开发
  • 南通网站定制公司服务器网站建设维护合同
  • 亳州做商标网站的公司免费的网站模板
  • 西南城乡建设部网站首页python3做网站教程
  • 网站首页设计欣赏个人电影网站建设
  • 导航网站建设怎么给网站图片加alt
  • 备案成功后怎么建设网站宠物喂养网页设计模板以及代码
  • 东莞哪家网站建设比较好wordpress更改语言设置
  • 如何找做网站的客户wordpress适合视频网站吗
  • 网站建设的业务流程图拔萝卜视频播放在线观看免费
  • 建个网站要多少钱高安网站制作
  • dw设计模板百度ocpc如何优化
  • 苏宁网站优化与推广html教程网站