我发送了一个带有“postman”的“application/json”类型的POST请求,将param“phone”设置为空字符串,正常情况下应该为注释“@notempty”打印错误,但是,它没有打印任何内容,也没有很好地工作。
@RequestMapping(value = "verify_smscode", method = RequestMethod.POST)
@ResponseBody
public ResponseDto verifySmsCode(HttpServletRequest request,
@Valid @RequestBody VerifySmsCodeParam params, Errors errors) {
if(errors.hasErrors()) {
System.out.println("error");
}
boolean success = userService.verifySmsCode(params.getPhone(), params.getSmsCode());
Map<String, Object> result = new HashMap<>();
result.put("status", success);
return new ResponseDto(result);
}
@Data
@NoArgsConstructor
public class VerifySmsCodeParam {
@NotEmpty //import org.hibernate.validator.constraints.NotEmpty;
private String phone;
@NotEmpty
private String smsCode;
}
SpringMVCConfig:
@Configuration
@ComponentScan(basePackages="com.shit.voiceshare")
@EnableWebMvc
public class SpringMvcConfig extends WebMvcConfigurerAdapter {
@Override
public Validator getValidator() {
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
localValidatorFactoryBean.setProviderClass(HibernateValidator.class);
return localValidatorFactoryBean;
}
}
您可能错过了依赖项。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
此外,请确保正确导入NotNull
。
import javax.validation.constraints.NotNull;
@notblank、@min和@valid注释来自以下依赖项: 如何使@Validated控制器中的@Validated工作在Person请求体上?
使用和的优点是什么? 有什么不同? 可以一起使用吗?
我有一个实体: 和控制器方法: 批注不起作用。 看起来Spring需要一个默认的无参数构造函数,上面的代码看起来很丑(但是可以工作),如下所示: 有什么好的练习可以让它不那么罗嗦吗? 谢谢
我的bean验证有问题。我将Quarkus与MongoDB一起使用,当我试图运行create REST API,在请求bean之前使用注释时,如果我想创建一个带有字段的文档(显然我在entity中使用了),但创建的文档没有字段,我希望出现异常。下面是我的代码: car.java: carResource.java: 我对注释也有同样问题,因为我可以创建一个包含多于3个字符的字段。 更新
打电话pp.java 电话JAVA 基本电话。JAVA 智能手机。JAVA 测验JAVA 即使我给限定符为在类,我得到异常如下: 没有定义类型[com.geekslab.device.Phone]的限定bean:预期单个匹配bean,但发现2:BasicPhone,SmartPhone
问题内容: 在REST控制器中同时使用 @ControllerAdvice 和 @Valid 批注时,遇到了麻烦。 我有一个声明如下的rest控制器: 还有一个ErrorHandler类: 问题是,如果我在 RestExample.add* 方法中添加 “引发新的RuntimeException” ,则该异常由 RestErrorHandler 类正确处理。 *** 但是,当向控制器卷曲无效请求时