【发布时间】:2019-10-14 06:00:02
【问题描述】:
我想用@Valid 注解验证请求体。 在该方法中有一个 @RequestParam 值。 如果这个@RequestParam 值“min”,我希望requestbody 中的一个字段是强制性的。可以用注解吗?
@RequestMapping(method = RequestMethod.POST, value = ProductionResponse.URL, produces = JWSMessageConverter.JWS_MEDIA_TYPE_VALUE)
@ResponseBody
public ResponseEntity<ProductionResponse> richiestaProduzione(@RequestParam("issuerType") String issuerType,
@RequestParam("issuerCode") String issuerCode, @RequestParam("procedureId") String procedureId,
@Valid @RequestBody ProductionRequestResource requestBody) {
if (LOGGER.isDebugEnabled())
LOGGER.debug("POST " + ProductionResponse.URL);
@Valid ProductionRequestResource fff = requestBody;
requestBody.setProcedureResource(issuerType, issuerCode, procedureId);
try {
ProductionResponse response = produzioneService.richiestaProduzione(requestBody);
return ResponseEntity.ok(response);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
return ResponseEntity.badRequest().body(ProductionResponse.ko(requestBody, e.getMessage(), requestBody.getNun()));
}
}
如果 issuerType 等于“MIN”,我希望 ProductionRequestResource 中的字段 issuerMunicipalityCode 是强制性的。
【问题讨论】:
-
你的问题有点误导,所以格式化了。
-
您需要为您的场景实施自定义验证。您可以在stackoverflow.com/questions/25075683/… 找到解决方案
-
是的,但是我如何访问请求中的字段 issuerType,并使用它来验证我的请求正文?
-
ProductionRequestResource pojo 对象中没有 issuerType 吗?如果没有,那么你需要在不使用spring验证框架的情况下进行验证。
-
不,我在 productionrequestresource pojo 中没有问题类型。我需要一个关于如何在没有弹簧验证的情况下进行验证的建议。我需要使用消息资源进行国际化。
标签: spring validation