spring - @RequestParam 上的约束验证似乎不起作用
问题描述
我有一个GetAll
操作将所有员工拉到一个deptNo
. 我想添加一个约束来检查deptNumber
我的大小,RequestParameter
但它似乎没有验证参数。我怎样才能实现验证?
public ResponseEntity<PagedResources<EmpSummary>> getEmps(
@Valid @RequestParam @Max(1) @Max(999) Optional<Long> deptNUmber)
@Controller
@Validated
@RequestMapping("/v1")
@RequiredArgsConstructor
public class OntApiController implements OntApi {
private final OntService service;
private NativeWebRequest nativeWebRequest;
private HttpServletRequest httpServletRequest;
@Override
public ResponseEntity<PagedResources<OntSummaryResource>> getOnts(
@Valid @RequestParam @Min(1L) @Max(999L) Optional<Long> ontNumber,
@Valid @RequestParam @Min(1) @Max(999) Optional<Integer> model,
...... more parameters);
javax.validation.UnexpectedTypeException:HV000030:找不到约束“javax.validation.constraints.Max ”验证类型“java.util.Optional”的验证器。检查配置
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
解决方案
根据文档@Validated
:如果您使用方法参数验证,您应该向控制器添加注释。
现在您的代码将是这样的:
@RestController
@RequestMapping("/your_api")
@Validated
public class YourController {
@GetMapping("/your_endpoint")
public ResponseEntity> getEmps(
@RequestParam @Min(1) @Max(999) Optional deptNUmber){
推荐阅读
- java - 如果构造函数值为空,我可以给它一个默认值吗?
- sdk - 本地对话流 SDK
- python - sqlalchemy 反映的表没有看到主键
- python - Tarantool 和 MySQL 与 Django 的使用
- excel - 用户窗体中的月视图 - 自动关闭
- android - 扫描新指纹时如何触发 KeyPermanentlyInvalidatedException
- html - 媒体查询未生效。
- autodesk-forge - Revit 模型中的自定义属性(标识数据)翻译错误
- sql - 多行聚合为一
- nginx - Ruby on rails 应用程序在 http 上工作,但不在 https 上