SpringMVC的九大组件

1.MultipartResolver:用于处理文件上传请求,处理方法将普通的request包装成MultipartHttpServletRequest,后者可以通过直接调用getFile方法获取file。如果是多个文件,那么可以调用getFileMap得到一份file结构的map。

2.LocaleResolver:LocalResolver是个接口,用于从request中解析出Locale。用到LocaleResolver的地方有两处:一是ViewResolver解析视图的时候;二是使用到国际化资源或者主题的时候,国际化资源或者主题主要使用RequestContext的getMessage和getThemeMessage方法。

3.ThemeResolver:它是个接口。SpringMVC中一套主题对应一个properties文件,里面存放着和当前主题相关的所有资源,比如图片、css样式等。SpringMVC中和主题相关的类主要有ThemeResolver ThemeSource Theme。ThemeResolver的作用是从request解析出主题名,ThemeSource的作用是根据主题名找到具体的主题,Theme是ThemeSource找出的一个具体的主题。

4.HandlerMapping:是一个接口,内部只有一个方法和若干变量,它的作用是根据request找到对应的Handler。

5.HandlerAdapter:用来遍历所有的Adapter,找到可以处理当前请求的Handler。

6.HandlerExceptionResolver:是SpringMVC中专门用来处理异常的类。它主要负责:根据异常设置ModelAndView,然后交给render方法进行渲染。

7.RequestToViewNameTranslator:它是个接口。ViewResolver根据ViewName寻找view,但是有的Handler并没有设置view,也没有设置viewName,这时就需要从request中获取viewName,也就是RequestToViewNameTranslator的任务。它只有一个getViewName方法,用于从request中获取到viewName。RequestToViewNameTranslator在SpringMVC容器中只能配置一个,因此所有request到ViewName的转换规则都要遭一个Translator里面去实现。

8.ViewResolver:视图解析器用来将String类型的视图名(也叫逻辑视图)和locale解析为View类型的视图(物理视图)ViewResolver的使用需要注册到SpringMVC容器中,默认使用的是:org.springframework.web.servlet.view.InternalResourceViewResolver。

9.FlashMapManager:FlashMap主要是用在redirect中传递参数的。而FlashMapManager是用来管理FlashMap的。默认实现是 org.sptingframework.web.servlet.support.SessionFlashMapManager。它将参数保存在session中,其原理就是利用session中转站保存request中的参数,达到redirect来传递参数的。

猜你喜欢

转载自blog.csdn.net/Anthony_1223/article/details/79297094