视图解析器整理

视图–逻辑使图和非逻辑视图

非逻辑视图是不需要视图解析器的,比如MappingJacksin2JsionView 含义就是把数据模型转换成JSON

JSTL视图
JSON视图

EXCEL视图:
springMvc推荐AbdtrctXlsView

project abstract void buildExcelDocument(Map<string,object> model,Workbook workbook,
HttpServletRequest request,HttpServletResponse response) Throws Exception{
}
该方法的主要任务是创建一个SHEET页,
假设导出角色信息 则先定义一个接口 用于生成的EXCEL规则
比如
1、定义接口,用于创建规则
public interface ExcelExportService{
public void makeWorkBook(Map<String ,Object > model,Workbook ,workbook);
}
2、定义EXCEL视图
public class ExcelView extends AbstractXlsView{
private String fileName;
//导出视图自定义接口
private ExcelExportServlce exportServlce
构造方法;
public ExcelView (ExcelExportServlce exportServlce){
this.exportServlce=exportServlce
}
构造方法;
public ExcelView (String viewName , ExcelExportServlce exportServlce){
this.setBeanName(viewName );
}
@override
project abstract void buildExcelDocument(Map<string,object> model,Workbook workbook,
HttpServletRequest request,HttpServletResponse response) Throws Exception{
//没有自定义接口
if(exportServlceull){
thorw new RuntimeException(""""")
}
//文件名不能为空,为空则使用请求中的字符串为名
if(StringUtils.isEmpty(fileName)){
String requestCharset=request.getCharacterEncoding();
requestCharset=requestCharset
null?“UTF-8”:requestCharset;
fileName = new String(fileName.getBytes(requestCharset),“ISO8859-1”);
//设置文件名
reponse.setHeader(“Conent-dispostion”,“attachment;filename=”+fileName);
}
//回调接口方法 使用,自定义,生成Excel文档
exportServlce.makeWorkBook(model,workbook)

}
}
3、在控制器(controller)中添加新方法
@requestMappring(value="")
Public ModelAndViewexport(){

//设置后台参数
RoleParams roleParams = new RoleParams();
PageParams page = new PageParams();
page .setSart(0);
page .setLimit(100000)
roleParams .setPage(page )
//查询护具
List roles = roleService.getRoles(roleParams ),
//模型和视图
ModelAndView mv =new ModelAndView();
//Excel视图,并设置自定义到处接口
ExcelView ev= new ExcelView(exportService());
//文件名
ev.setFileNanme(“角色。xlsx”);
mv.ddObject("roles ",roles );
mv.setView(ev);
return mv;
}
private ExcelExportService(){
//使用lambda表达式
return (Map<String , Object > model ,Workbook workbook){
List roles = model.get(“roles”);,
//生成sheet页
Sheet sheet = workbook.createSheet(“角色”);
//添加标题
Row title = sheet.createRow();
title.create(0).setCellValue(“编号”);
title.create(1).setCellValue(“名称”);
title.create(2).setCellValue(“备注”);
for(int i = 0 ;i<=roles.size();i++){
Role role = roles.get{i};
int rowIndex = i+1;
Row row = sheet.createRoe(rowIndex);
row.createCell(0).setCellValue(role.getId());
row.createCell(1).setCellValue(role.getName());
row.createCell(2).setCellValue(role.getNote());
}
};

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值