Spring MVC:确保参数有效,横切多个控制器



我有一个使用spring mvc的restful服务器。许多控制器(虽然不是全部)采用特定的路径参数/fruits/{type}。

我需要集中配置什么类型的水果是可以接受的。也就是说,苹果、香蕉、樱桃都可以。对于其他一切,我需要抛出400级http状态码。

快速而优雅地完成这一点很重要。可以这样做的方法有:

  1. 我写了一些实用程序pojo和调用它的方法在每个控制器方法处理/水果/{type}。看起来很泥泞。
  2. spring web请求拦截器春天
  3. 安全吗?
  4. AOP吗?
  5. 别的吗?

要达到这个目标,最专业、最快速、最优雅的方法是什么?

你可能不会得到"最佳方法"的答案。每种"最佳方式"都取决于你的具体情况、需求和愿望。这是一个"方法"…

我们在请求绑定期间通过propertyeditor来实现。

你可以有一个PropertyEditor每个控制器类型,如果你没有收到正确类型的"东西",你期望然后抛出一个异常从PropertyEditor。

你可以通过一个映射到RequestMappingHandlerAdapter的自定义PropertyEditorRegistrar来注册你的propertyededitor。

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

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

相关内容

最新更新