gpt4 book ai didi

java - Spring 验证注释 - 如何验证字符串中的 2 个字符条目是否是实际的美国州?

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:36 26 4
gpt4 key购买 nike

我正在尝试使用 spring 检查用户在线输入,以确保他们输入的两个字符是实际的美国州,有没有办法做到这一点,希望使用预设模式?像 @State 之类的(如果这是一个合法的注解)。另外,是否有一个好的注释通常用于 String street 和 String city 字段?那不是@NotNull 和@NotEmpty

任何帮助将不胜感激!!

最佳答案

不幸的是,没有开箱即用的方法,但是您可以创建自己的 @State 注释,您只需定义注释和实现 ConstraintValidator(处理验证逻辑)的类,例如

@Constraint(validatedBy = StateConstraintValidator.class)
@Target( { ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface State {

String message() default "{State}";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};
}


public class StateConstraintValidator implements ConstraintValidator<String, String> {

private static final Set<String> CODE_MAP = new HashSet<>(){
{add("AR");}
{add("AK");} //add more codes ...
};

@Override
public void initialize(String state) { }

@Override
public boolean isValid(String value, ConstraintValidatorContext cxt) {
if(value == null) {
return false;
}
return CODE_MAP.contains(value);
}
}

您可以以类似的方式创建其他注释。

关于java - Spring 验证注释 - 如何验证字符串中的 2 个字符条目是否是实际的美国州?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27828976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com