【发布时间】:2016-12-02 01:36:18
【问题描述】:
我编写了一个异常映射器来覆盖 Hibernate Validator 生成的响应,这样我就可以对响应中返回的消息进行一些控制。
我的问题是,我很难找到一种简单的方法来根据违反约束的类型“切换”,因此,我在编写自定义消息时遇到了麻烦。理想情况下,我可以根据注释进行切换,并在响应中返回自定义消息。理想情况下,它看起来像这样:
@Override
public Response toResponse(ConstraintViolationException exception) {
ConstraintViolation violation = exception.getConstraintViolations().iterator().next();
String message = null;
switch (violation.getType()) {
case SomeEnum.NOT_NULL:
message = "It's not null!";
break;
default:
message = "Other message!";
}
...
}
这样简单的事情可能吗?
【问题讨论】:
-
这不是一个好方法——如果你想国际化消息怎么办?如果您要走这条路,请将带注释的
message设为键并使用普通消息包。查看开箱即用的约束注释的默认值。 -
我已经有一个用于处理国际化的字符串文件。我简化了这个例子,所以这不是重点。我在这里感兴趣的是选择正确消息的机制,而不是从哪里检索它们。
标签: java validation bean-validation hibernate-validator