这是对我的问题Spring Web MVC - validate individual request params的后续。在哪里验证网络应用程序中的数据(使用Spring)
我已经想出了如何在从我的输入创建的域对象上调用Spring验证器,以及如何让该验证器对我的类自己颁发JSR-303注释。我无法弄清楚的部分是在我的代码中执行此验证的地方。显而易见的方法是在控制器中执行此操作,并在验证失败时返回不同的模型和视图。
但我也有一个服务层,它有时会从Web控制器以外的输入源中创建/更新对象。所以很容易在那里实现验证,但我认为报告失败的唯一明显方式是抛出异常。我看到Spring提供了BindException,但Javadoc也基本上说不在应用程序代码中使用它。
这里常见的/推荐的做法是什么?
不够公平。但在那种情况下,是否有一种干净的方式来报告失败? – Dan 2011-06-06 15:07:51
向谁报告?网络用户?控制器这样做。应用服务器?该服务应该在日志或警报或其他内容中执行此操作。我假设这个异常不会传播出控制器。 – duffymo 2011-06-06 15:59:52