gpt4 book ai didi

java - Spring MVC : Ensure parameter is valid, 通过多个 Controller 进行横切

转载 作者:行者123 更新时间:2023-12-01 12:52:08 25 4
gpt4 key购买 nike

我有一个使用 spring mvc 的 Restful 服务器。许多 Controller (尽管不是全部)采用特定的路径参数/fruits/{type}。

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

重要的是要快速且优雅地完成此操作。实现此目的的一些方法是:

  1. 我编写了某种实用程序 pojo 并在处理/fruit/{type} 的每个 Controller 方法中调用它的方法。看起来很笨拙。
  2. Spring Web 请求拦截器
  3. Spring 安全性?
  4. AOP?
  5. 还有别的事吗?

实现这一目标最专业、快速、优雅的方法是什么?

最佳答案

您可能无法得到“最佳方法”答案。每个“最佳方法”都取决于您的具体情况、需求和愿望。这是“一种”方式...

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

您可以为每种 Controller 类型配备一个 PropertyEditor,如果您没有收到您期望的正确类型的“事物”,则从 PropertyEditor 抛出异常。

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

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

顺便说一句,我会考虑使用 404 与 400,但这只是我的想法。

关于java - Spring MVC : Ensure parameter is valid, 通过多个 Controller 进行横切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24144336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com