Java 编辑。如何在spring validate()方法中插入类型检查?
我有一张登记表。当我发布表单时,此错误Java 编辑。如何在spring validate()方法中插入类型检查?,java,spring,Java,Spring,我有一张登记表。当我发布表单时,此错误未能将[java.lang.String]类型的属性值转换为属性号所需的[int]类型;嵌套异常是java.lang.NumberFormatException:对于输入字符串:“wewer”come。所以我正在寻找一种简单的方法来检查数据的类型。我曾尝试使用@模式(regexp=“[A-Za-z]”,message=“digits only”),但这不起作用。是否有要使用的单线批注 更新:感谢RC的想法。为数字创建一个字符串,然后稍后将其转换回。我认为我的
未能将[java.lang.String]类型的属性值转换为属性号所需的[int]类型;嵌套异常是java.lang.NumberFormatException:对于输入字符串:“wewer”
come。所以我正在寻找一种简单的方法来检查数据的类型。我曾尝试使用@模式(regexp=“[A-Za-z]”,message=“digits only”)
,但这不起作用。是否有要使用的单线批注
更新:感谢RC的想法。为数字创建一个字符串,然后稍后将其转换回。我认为我的解决方案不好,因为我必须在用户类中添加一个条目,更改注册表表单中的字段
@Component
public class UserValidator implements Validator {
@Override
public boolean supports(Class clazz) {
return User.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
User user = (User) target;
if(user.getUsername() == null || user.getUsername() == "") {
errors.rejectValue("username", "","username is empty");
}
if(user.getNumberString().isDigit == false) {
errors.rejectValue("number", "","digits only");
} else {
user.setNumber(Integer.parseInt(user.getNumberString());
}
}
还有我的用户类
public class User {
private int id;
private String username;
//@Pattern(regexp="[A-Za-z]" ,message = "No characters")
//@NotNull
@Min(3)
private Integer number;
private String numberString;
}
==带字符串???@RC抱歉,我忘了更新我的用户类,该数字是一个整数
User。getUsername()==”
不正确。使用equals()
来比较字符串,而不是=
。请参阅:使用带有@Pattern
或@Digits
的“number”字符串,并在使用时将其转换回整数?@RC感谢您的想法,我已经进行了一些更新。==带有字符串???@RC抱歉,我忘记更新我的用户类,该数字是一个整数用户。getUsername()==“”
不正确。使用equals()
来比较字符串,而不是=
。请参阅:使用带有@Pattern
或@Digits
的“number”字符串,并在使用时将其转换回整数?@RC谢谢您的想法,我已经做了一些更新。