Spring MVC的哪个类或组件确定传递给Controller的RequestMapping方法参数的对象?

时间:2015-08-17 22:12:53

标签: java spring spring-mvc

使用Spring MVC的原始初学者 - 说, Spring MVC的哪个组件将对象传递给在控制器对象中使用@RequestMapping注释的方法?

例如,

@RequestMapping
public String test(Model model) {
    model.addAttribute("testMessage", "My Test");
    return "test";
}

模特来自哪里? 我的方法可以接受我想要的任何参数吗? 是否有一些直观的Spring框架依赖注入,我在这里根本就不理解?

1 个答案:

答案 0 :(得分:0)

这是Spring依赖注入的全部内容。 Spring注入Model model 反对你的控制器方法。 Model model只是Map <String, Object> 存储属性。使用model将属性添加到model.addAttribute("testMessage", "My Test")对象后,会向Map添加一个条目。您可以从您感兴趣的视图中访问此地图。因此,您可以在视图中使用此地图来访问您从控制器添加的属性(即testMessage

您可以在这些控制器方法中传递其他一些内容,Spring会自动解析并注入适当的对象/值。您可以使用以下内容:

ModelMap modelMap
@RequestParam
@PathVariable
@ModelAttribute
BindingResult bindingResult

然后继续。当你在控制器方法上传递这些东西时,Spring知道如何解决它们并将它们注入到你的方法中。 这可能会让您更好地了解spring mvc:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html