gpt4 book ai didi

java - 谁将 Spring ModelMap 作为参数传递给 Controller ​​方法?

转载 作者:行者123 更新时间:2023-11-30 08:00:32 30 4
gpt4 key购买 nike

我在stackoverflow、spring specification 和google 中搜索了很长时间,仍然找不到答案。

例如,

--------------------示例方法 #1------------------------

@RequestMapping(value = "/login")

public String handleLogin(ModelMap model, @RequestParam String name){
model.addAttribute("name", name);
return "login";
}

在上面的方法中,

  1. 谁在什么情况下调用这个方法?
  2. 在调用此方法之前,调用者对模型做了什么?
  3. 这个 ModelMap 对象在哪个范围内?是否在请求范围内?
  4. 该类方法的签名有什么要求?我可以任意创建如下方法吗:

----------------示例方法#2------------------------

@RequestMapping(value = "/login")

public String handleLogin(String s1, ModelMap model_1, int i, ModelMap model_2 @RequestParam String name){
model_1.addAttribute("name", name);
model_2.addAttribute("company", "good");//what are the initial status of model_1 and model_2?
return "login";
}

在这个方法中,我放了2个ModelMap参数,它们的位置是任意的。 spring 框架是否可以调用此方法,以便像示例方法 #1 中的常规情况一样,使用模型图将数据传送到 View ?

一般谁能详细说明ModelMap传入方法前的生命周期?

最佳答案

请找出以下答案:

(1)谁调用了这个方法,在什么情况下调用?

This controller method will be invoked by Spring Dispatcher Servlet (& handler methods) when "/login" request comes to the server

(2)调用者在调用这个方法之前对模型做了什么?

Spring Dispatcher Servlet provides this model object for use with UI tools.

(3) 这个ModelMap对象在哪个作用域?是否在请求范围内?

No, Modelmap object will be used internally by spring handler methods to add the user defined objects (to be presented in UI) into the http response.

(4) 这类方法的签名有什么要求?可以

model_1 和 model_2 都将引用同一个模型对象,因为每个请求都会维护一个对象。 Controller 方法签名是灵活的,您可以在下面的链接中找到更多信息: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-methods

关于Modelmap的更多详细信息,请引用以下内容:

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/ui/ModelMap.html

此外,请引用下面的 spring dispatcher servlet 生命周期: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

关于java - 谁将 Spring ModelMap 作为参数传递给 Controller ​​方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38473058/

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