编辑。如何在spring validate()方法中插入类型检查?

时间:2016-12-02 05:58:03

标签: java spring

我有一个注册表。当我发布表单时,会出现此错误Failed to convert property value of type [java.lang.String] to required type [int] for property number; nested exception is java.lang.NumberFormatException: For input string: "wewer"。所以我正在寻找一种检查数据类型的简单方法。我曾尝试使用@Pattern(regexp = "[A-Za-z]", message = "digits only"),但这不会奏效。是否有任何一行注释要使用?

更新:感谢RC的想法。为数字创建一个字符串,然后将其转换回来。我认为我的解决方案并不好,因为我必须在User类中添加一个条目,更改寄存器表单中的字段。

@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;

}

0 个答案:

没有答案