你的位置:首页 > 软件开发 > Java > 基于BeanNameViewResolver解析器,自定义视图

基于BeanNameViewResolver解析器,自定义视图

发布时间:2015-12-14 13:00:03
概述 基于spring-mvc自定义视图,以BeanNameViewResolver作为解析器,以满足特殊需求。 本文以输出多个pdf文件的压缩文件,供前台下载的需求为例;但是不提供服务层实现。 实现 创建AbstractView的实现类 package cn.sinobe ...

基于BeanNameViewResolver解析器,自定义视图

概述

基于spring-mvc自定义视图,以BeanNameViewResolver作为解析器,以满足特殊需求。

本文以输出多个pdf文件的压缩文件,供前台下载的需求为例;但是不提供服务层实现。

实现

创建AbstractView的实现类

package cn.sinobest.jzpt.zfba.fzyw.xzfy.dfcl.view;import java.util.List;import java.util.Map;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;import org.springframework.web.servlet.view.AbstractView;import cn.sinobest.jzpt.zfba.fzyw.xzfy.dfcl.domain.DFCL;import cn.sinobest.jzpt.zfba.fzyw.xzfy.dfcl.service.IZipService;@Component("dfclView")public class DFCLView extends AbstractView {  @Resource(name = "fzyw.xzfy.service.zip")  private IZipService zipService;  @Override  protected void renderMergedOutputModel(Map<String, Object> model,      HttpServletRequest request, HttpServletResponse response)      throws Exception {    /* 1. 设置响应内容类型 */    response.setContentType("Application/Octet-stream;charset=utf-8");    /* 2. 将文件名加入响应头 */    String zipName = "材料压缩包" + System.currentTimeMillis() + ".zip";    zipName = new String(zipName.getBytes(), "ISO-8859-1");    response.addHeader("Content-Disposition", "attachment; filename="        + zipName);    /* 3. 输出文件内容 */    @SuppressWarnings("unchecked")    List<DFCL> dfclList = (List<DFCL>) model.get("dfclList");    zipService.write(response.getOutputStream(), dfclList);    /* 4. 关闭流 */    response.getOutputStream().flush();    response.getOutputStream().close();  }}

原标题:基于BeanNameViewResolver解析器,自定义视图

关键词:ie

ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。