gpt4 book ai didi

spring - 如何确定 Spring Controller 方法的参数?

转载 作者:行者123 更新时间:2023-12-01 15:27:17 24 4
gpt4 key购买 nike

我看到带有各种参数的 Spring MVC Controller 处理程序方法。如:

  • XXX()
  • XXX(模型模型)
  • XXX(HttpServletRequest请求,模型模型)
  • XXX(HttpServletRequest 请求,HttpServletResponse 响应)

所以,

  • 什么决定了参数列表?
  • 为什么 Spring Controller 处理程序方法没有固定的签名?
  • Spring 如何处理这些变化的参数列表?
  • 我可以输入任意类型的参数吗?

最佳答案

Spring Controller 方法签名非常灵活并且支持多个参数。它们列在 documentation 中.

关于你的第二个问题,没有固定的签名正是为了在编写 Controller 方法时提供灵 active 。

使用 HandlerMethodArgumentResolver 的实现解析各个参数界面。例如,如果您有使用 @PathVariable 参数注释的参数,其值将由 PathVariableMethodArgumentResolver 解析。

您甚至可以创建自己的 HandlerMethodArgumentResolver 实现,以允许在您的 Controller 方法签名中使用一些自定义参数类型。


从历史上看,Spring 中曾经有具有固定签名的 Controller 。他们将实现 AbstractCommandController界面为例。这样的 Controller 将实现以下方法:

ModelAndView handle(HttpServletRequest request, HttpServletResponse response,
Object command, BindException errors)

但是 Spring 从那时起已经发展,这种方法在 Spring 3 中被弃用,取而代之的是基于注解的 Controller 。

关于spring - 如何确定 Spring Controller 方法的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33473949/

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