Spring MVC:确保参数有效,跨越许多控制器

时间:2014-06-10 15:01:02

标签: java spring spring-mvc spring-security spring-aop

我有一个使用spring mvc的安静服务器。许多控制器(尽管不是全部)采用某个路径参数/ fruits / {type}。

我需要集中配置哪些类型的水果是可以接受的。即,苹果,香蕉,樱桃都可以。对于其他一切我需要抛出400级http状态代码。

重要的是要快速而优雅地完成。可以采取的一些方法是:

  1. 我编写了一些实用程序pojo,并在每个处理/ fruit / {type}的控制器方法中调用它的方法。看起来非常狡猾。
  2. 弹簧网络请求拦截器
  3. 春天的安全?
  4. AOP?
  5. 别的什么?
  6. 实现这一目标的最专业,快捷,优雅的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可能无法获得最佳方式'回答。每种最好的方式'取决于您的具体情况,需求和愿望。这是' a'方式...

我们在请求绑定期间通过PropertyEditors执行此操作。

如果您没有收到正确类型的“'你期待然后从PropertyEditor抛出异常。

您可以通过映射到RequestMappingHandlerAdapter的自定义PropertyEditorRegistrar为每个Controller注册PropertyEditors或全局注册。

然后我会使用Spring SimpleMappingExceptionResolver将您的不同异常映射到您想要返回的视图和错误代码。

顺便说一句,我会考虑使用404 vs 400,但那只是我。