在Web应用程序中验证数据的位置(使用Spring)

Dan*_*Dan 2 java validation spring spring-mvc

这是我的问题Spring Web MVC的后续内容- 验证个人请求参数.

我已经想出如何在从我的输入创建的域对象上调用Spring Validator,以及如何让验证器在我的类本身上尊重JSR-303注释.我无法弄清楚的部分是我的代码中执行此验证的位置.显而易见的方法是在控制器中执行此操作并返回不同的模型并查看是否存在验证失败.

但我也有一个服务层,有时会调用从Web控制器以外的输入源创建/更新对象.所以在那里实现验证很诱人,但我能想到报告失败的唯一明显方法就是抛出异常.我看到Spring提供了BindException,但Javadoc基本上也表示不在应用程序代码中使用它.

这里有什么共同/推荐的做法?

duf*_*ymo 6

我认为答案都是.

控制器与视图相关联.如果更改视图技术,则不希望验证消失.

服务应该假设没有人是安全的并且验证所有传入的参数.