rya*_*ogo 12 java spring spring-mvc
我使用从STS创建的模板创建了一个Spring MVC项目,这是在控制器中生成的:
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
//stuff
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,locale和model变量如何传递到home方法中?
此外,可以传递给方法的对象有哪些可能的选项?
技术答案是通过使用SpringMVC HandlerAdapter机制.
通过spring的DispatcherServlet,为每个调度的请求创建并配置Handler适配器.
我认为在这种情况下,"spring magic"是位于spring mvc包中的AnnotationMethodHandlerAdapter.此适配器基本上将"映射"到基于HTTP路径,HTTP方法和与请求关联的请求参数的HTTP请求.
因此,当spring dispatcher servlet使用路径"/"标识请求时,它将检查使用RequestMapping注释注释的容器中的方法.
在你的情况下它发现它...
然后真正的魔法开始......
使用java反射,Spring将解析控制器方法的参数.因此,在您的情况下,Locale和模型将自动传递给您.如果您包含另一个类似Web的参数,例如HttpSession,它将传递给您.
| 归档时间: |
|
| 查看次数: |
13166 次 |
| 最近记录: |