Spring - 实例化Errors对象

th3*_*aly 27 java spring

我有这样的方法:

public boolean validateMessage(String message, Errors errors) {
  if (!StringUtils.hasLength(message)) {
    errors.rejectValue(wrapperName + "message", "EMPTY_MESSAGE", EMPTY_MESSAGE_ERRORMSG) ;
            return false ;
        }
        return true ;
    }
Run Code Online (Sandbox Code Playgroud)

我想用一个新Errors对象调用此方法,如:

boolean result = validateMessage("hi", new Errors()) ;
Run Code Online (Sandbox Code Playgroud)

但是,不允许这种实例化Errors.请指教.

如果没有Errors,我可以使用空(新)来实现这一点BindingResult

Jon*_*han 20

Errors并且BindingResult是接口,因此无法实例化它们.您唯一的选择是使用其中一个实现的类Errors.

您可以使用org.springframework.validation.BindException,这个实现Errors- 请参阅此处了解详细信息.

  • 可以在实现错误时强制转换`BindException`.您正在实例化错误的`BindException`类 - 它不是`java.net.BindException`对象 - 它是`org.springframework.validation.BindException` (9认同)
  • 这是行不通的,因为`BindException`无法转换为`Errors` (2认同)

Rob*_*2D2 15

另一种选择是使用org.springframework.validation.BeanPropertyBindingResult,它实现了错误.该对象与Spring MVC控制器中的BindingResult类相同

Errors errors = new BeanPropertyBindingResult(objectToValidate, "objectName");
Run Code Online (Sandbox Code Playgroud)