【发布时间】:2020-12-09 15:51:24
【问题描述】:
问题:这似乎不起作用。
@Post("/register")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@View("register")
@Error(exception = ConstraintViolationException.class)
def register(HttpRequest<?> request, ConstraintViolationException constraintViolationException) {
Optional<RegisterFormData> registerFormDataOptional = request.getBody(RegisterFormData.class)
Map<String, Object> map = new HashMap<>()
if(registerFormDataOptional.isPresent()){
RegisterRequest registerRequest = new RegisterRequest(registerFormDataOptional.get().properties)
registerRequest.returnSecureToken = true
try {
def registerResponse = firebaseClient.register(registerRequest, this.firebaseApiKey).blockingSingle()
SendEmailVerificationRequest sendEmailVerificationRequest = new SendEmailVerificationRequest()
sendEmailVerificationRequest.requestType = 'VERIFY_EMAIL'
sendEmailVerificationRequest.idToken = registerResponse.idToken
firebaseClient.sendEmailVerification(sendEmailVerificationRequest, this.firebaseApiKey)
HttpResponse.redirect(URI.create('/register-success'))
}catch(HttpClientResponseException ex){
map.put('errors', [ex.message])
return map
}
}else{
map.put('errors', violationMessageSource.violationsMessages(constraintViolationException.constraintViolations))
return map
}
}
给我一个
{"message":"Required argument [ConstraintViolationException constraintViolationException] not specified","path":"/constraintViolationException","_links":{"self":{"href":"/auth/register","templated":false}}}
目前正在使用 Micronaut 和 Thymeleaf。有人知道我还缺少什么吗?我正在关注https://guides.micronaut.io/micronaut-error-handling/guide/index.html中的示例
这里的重点是在发生约束冲突时将一些错误消息从控制器传递回 UI。使用注解 @Body 和 @Valid 的默认值不起作用,因为它返回没有任何视图的 json 错误。
【问题讨论】: