springmvc-九大组件

Author Avatar
丁起男 06月 15,2021
  • 在其它设备中阅读本文章

springmvc-九大组件

MultipartResolver

文件处理器,用于处理上传请求。处理方法是将普通的request包装成MultipartHttpServletRequest,后者可以直接调用getFile方法获取File

LocaleResolver

当前环境处理器,解析视图需要两个参数:一个是视图名,另一个是Locale。视图名是处理器返回的,Locale就是LocaleResolver要做的事情,LocaleResolver负责从request解析出Locale

Locale表示一个区域,有了这个就可以对不同区域的用户显示不同的结果

springmvc主要有两个地方用到了Locale:

  • ViewResolver视图解析
  • 国际化资源或者主题

ThemeResolver

主题处理器,用于解析主题

springmvc中一个主题对应一个properties文件,里面存放着根当前主题相关的所有资源,如图片、css样式等

springmvc的主题也支持国际化,同一个主题不同区域也可以显示不同的风格

springmvc中和主题相关的类有:ThemeResolver、ThemeSource和Theme

主题是通过一系列资源来具体体现的,要得到一个主题的资源,首先要得到资源的名称,这是ThemeResolver的工作。然后通过主题名称找到对应的主题文件(可以理解为一个配置文件),这时ThemeSource的工作。最后从主题获取资源就可以了

HandlerMappings

处理映射器,用来查找Handler的

springmvc中有很多请求,每个请求都需要一个Handler处理, HandlerMappings决定具体接收到请求后由哪个Handler处理

HandlerAdapters

处理适配器,是一个适配器

springmvc中的Handler可以是任意形式的,只有能处理请求就可以。但Servlet需要处理方法的结构是固定的,都是以request和response为参数的方法。如何让固定的Servlet处理方法调用灵活的Handler来进行处理,就是HandlerAdapters要做的事情

HandlerExceptionResolvers

异常处理器,其它组件在工作的过程中难免会出现问题,HandlerExceptionResolvers就负责对异常情况进行处理

具体来说,就是根据异常设置ModelAndView,之后再交给render方法进行渲染

RequestToViewNameTranslator

视图名称解析器,有的Handler处理完后并没有设置View也没有设置ViewName,这时就需要从request获取ViewName了,RequestToViewNameTranslator负责从request中获取ViewName

ViewResolvers

页面渲染处理器,用来将String类型的视图名和Locale解析为View类型的视图

View是用来渲染页面的,也就是将程序返回的参数填入模板里生成html(也可能是其它类型)文件

ViewResolver需要找到渲染的模板和所用的技术(也就是视图的类型)进行渲染,具体渲染过程则交给不同的视图自己完成

FlashMapManager

参数传递管理器,用来管理FlashMap的

FlashMap主要用在redirect重定向中传递参数