Spring MVC工作流程,你学会了吗?( 二 )


  • MultipartResolver
MultipartResolver 用于上传请求,通过将普通的请求包装成
MultipartHttpServletRequest 来实现 。MultipartHttpServletRequest 可以通过 getFile() 方法 直接获得文件 。如果上传多个文件,还可以调用 getFileMap()方法得到Map<FileName,File>这样的结构,MultipartResolver 的作用就是封装普通的请求,使其拥有文件上传的功能 。
  • FlashMapManager
FlashMap 用于重定向时的参数传递,比如在处理用户订单时候,为了避免重复提交,可以处理完post请求之后重定向到一个get请求,这个get请求可以用来显示订单详情之类的信息 。这样做虽然可以规避用户重新提交订单的问题,但是在这个?面上要显示订单的信息,这些数据从哪里来获得呢?因为重定向时没有传递参数这一功能的,如果不想把参数写进URL(不推荐),那么就可以通过FlashMap来传递 。只需要在重定向之前将要传递的数据写入请求(可以通过
ServletRequestAttributes.getRequest()方法获得)的属性OUTPUT_FLASH_MAP_ATTRIBUTE中,这样在重定向之后的Handler中Spring就会自动将其设置到Model中,在显示订单信息的?面上就可以直接从Model中获取数据 。FlashMapManager 就是用来管理 FalshMap 的




推荐阅读