- 浏览: 973007 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qq_15946053:
基于spring的项目要导出成jar怎么做呢用eclipse的 ...
Spring项目导出可运行的JAR -
flyfeifei66:
baseservice、dao代码是同一个,但是实例配置多个, ...
Spring通过父类注入公用属性的技巧 -
yuechao4039:
写得不错,望楼主再接再厉
Spring中配置和读取多个Properties文件 -
xinglianxlxl:
psubscribe对我有用
Jedis的Publish/Subscribe功能的运用 -
Fenix87:
js中怎么调用配置文件的参数呢
Spring中配置和读取多个Properties文件
个人学习参考所用,勿喷!
9.创建一个资源多种实现的Excel和PDF视图
这里一个用于生成特定日期的预订消息的摘要报告的控制器为类:
@Controller @RequestMapping("/reservationSummary*") public class ReservationSummaryController { private ReservationService reservationService; @Autowired public ReservationSummaryController(ReservationService reservationService) { this.reservationService = reservationService; } @RequestMapping(method = RequestMethod.GET) public String generateSummary( @RequestParam(required = true, value = "date") String selectedDate, Model model) { List<Reservation> reservations = java.util.Collections.emptyList(); try { Date summaryDate = new SimpleDateFormat("yyyy-MM-dd").parse(selectedDate); reservations = reservationService.findByDate(summaryDate); } catch (java.text.ParseException ex) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); ex.printStackTrace(pw); throw new ReservationWebException("Invalid date format for reservation summary",new Date(),sw.toString()); } model.addAttribute("reservations",reservations); return "reservationSummary"; } }
从上面代码可以明确的看出返回的是同一的逻辑视图"reservationSummary"。
9.1)创建Excel视图。
这里需要添加Apache POI程序库的支持:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.5-FINAL</version> <type>jar</type> <scope>compile</scope> </dependency>
创建Excel视图的处理类:
public class ExcelReservationSummary extends AbstractExcelView { @SuppressWarnings({ "rawtypes", "unchecked", "deprecation" }) protected void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { List<Reservation> reservations = (List) model.get("reservations"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); HSSFSheet sheet = workbook.createSheet(); HSSFRow header = sheet.createRow(0); header.createCell((short) 0).setCellValue("Court Name"); header.createCell((short) 1).setCellValue("Date"); header.createCell((short) 2).setCellValue("Hour"); header.createCell((short) 3).setCellValue("Player Name"); header.createCell((short) 4).setCellValue("Player Phone"); int rowNum = 1; for (Reservation reservation : reservations) { HSSFRow row = sheet.createRow(rowNum++); row.createCell((short) 0).setCellValue(reservation.getCourtName()); row.createCell((short) 1).setCellValue( dateFormat.format(reservation.getDate())); row.createCell((short) 2).setCellValue(reservation.getHour()); row.createCell((short) 3).setCellValue( reservation.getPlayer().getName()); row.createCell((short) 4).setCellValue( reservation.getPlayer().getPhone()); } } }
这里我们还需要在资源集文件中添加对Excel资源的处理方式(当然也可以以其它的方式进行注册,只需要完成逻辑视图和视图对象的映射即可):
reservationSummary.(class)=com.apress.springrecipes.court.web.view.ExcelReservationSummary
这里我们可以用http://localhost:7070/Spring3MVC/reservationSummary.xls?date=2011-07-31的方式来获取到需要excel视图资源,当然这个资源是下载到本地了的。
9.2)创建PDF视图。
这里需要添加iText程序库的支持:
<dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> <type>jar</type> <scope>compile</scope> </dependency>
创建PDF视图处理类:
public class PdfReservationSummary extends AbstractPdfView { @SuppressWarnings({ "rawtypes", "unchecked" }) protected void buildPdfDocument(Map model, Document document, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception { List<Reservation> reservations = (List<Reservation>) model.get("reservations"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Table table = new Table(5); table.addCell("Court Name"); table.addCell("Date"); table.addCell("Hour"); table.addCell("Player Name"); table.addCell("Player Phone"); if(!reservations.isEmpty()) { for (Reservation reservation : reservations) { table.addCell(reservation.getCourtName()); table.addCell(dateFormat.format(reservation.getDate())); table.addCell(Integer.toString(reservation.getHour())); table.addCell(reservation.getPlayer().getName()); table.addCell(reservation.getPlayer().getPhone()); } } document.add(table); } }
这里我们还需要在 资源集 文件中添加对pdf资源的处理方式,并且不能和上面的Excel映射添加到同一个 资源集 中,因为同一个 资源集 中不能处在对相同的键值:
reservationSummary.(class)=com.apress.springrecipes.court.web.view.ExcelReservationSummary
这里我们可以用http://localhost:7070/Spring3MVC/reservationSummary.pdf?date=2011-07-31的方式来获取到需要pdf视图资源,当然这个资源是下载到本地了的。
--------------------------------------------------------------------------------------------------------
附件为系列文章的示例代码,eclipse3.7.1中运行通过。
参考:
juyon的blog:《spring3 MVC国际化支持之中文乱码》
Gary Mark等的书籍:《Spring Recipes》2ed
- Spring3MVC.zip (82.6 KB)
- 下载次数: 67
发表评论
-
Spring项目导出可运行的JAR
2013-09-05 20:01 16299一、在使用MAVEN的打包插件。 1.背景 ... -
Spring Security3实践总结
2013-07-22 18:12 19310在线项目最近要对管理系统进行细粒度的权限控 ... -
Spring中配置和读取多个Properties文件
2013-05-31 16:45 61593一个系统中通常会存在如下一些以Properties形式存在 ... -
Spring多数据源的配置和使用(2)
2012-11-22 11:40 18738本文以Spring2.5 + Hibernat ... -
Spring定时任务的多种使用方法总结
2012-08-04 17:34 10440这里使用的是Spring2.5,需要的jar包:sprin ... -
Spring多数据源的配置和使用(1)
2012-08-04 14:51 22621最近开发一个数据同步的小功能,需要从A主机的Ora ... -
Spring通过父类注入公用属性的技巧
2012-06-19 13:22 29812XML配置方式提取父类 在 ... -
Spring3 MVC
2012-04-24 17:16 0个人学习参考所用,勿喷! 1.搭建一个基于S ... -
Spring3 MVC的最佳实践和理解(8)
2012-04-25 09:10 2319个人学习参考所用,勿喷! 8.Bean的注解式 ... -
Spring3 MVC的最佳实践和理解(7)
2012-04-25 09:09 4133个人学习参考所用, ... -
Spring3 MVC的最佳实践和理解(6)
2012-04-25 09:09 2042个人学习参考所用, ... -
Spring3 MVC的最佳实践和理解(5)
2012-04-24 17:01 22084个人学习参考所用, ... -
Spring3 MVC的最佳实践和理解(4)
2012-04-24 16:59 4831个人学习参考所用,勿喷! 4.区域解析和外部化区 ... -
Spring3 MVC的最佳实践和理解(3)
2012-04-24 16:56 4515个人学习参考所用,勿喷! 3.使用拦截器 Sp ... -
Spring3 MVC的最佳实践和理解(2)
2012-04-24 16:55 5071个人学习参考所用,勿 ... -
Spring3 MVC的最佳实践和理解(1)
2012-04-24 16:53 3788个人学习参考所用,勿喷! 1.搭建一个基 ... -
Spring RESTful服务接收和返回JSON最佳实践
2012-04-16 17:13 108558个人学习参考所用,勿喷! 返回JSON ... -
Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析
2012-04-10 16:00 89516个人学习参考所用,勿喷! 在使用 Tomcat服 ... -
Spring属性注入和构造函数注入参考
2012-02-25 23:23 4417个人学习参考所用,勿喷! 1.Pojo如下: ...
相关推荐
而`spring-framework-2.5.6-with-docs.zip`可能包含了Spring 2.5.6的源码和文档,帮助开发者了解Spring MVC的内部实现和最佳实践。 总之,这个压缩包提供了开发基于Spring MVC和Hibernate的Java Web应用所需要的...
首先,"spring-mvc-showcase" 是 SpringSource 提供的一个示例应用,用于展示 Spring MVC 的各种特性和最佳实践。这个项目包含了一系列精心设计的示例,涵盖了从基本请求处理到复杂业务逻辑的多种场景,是学习 ...
**Spring3 MVC 深入研究*...通过深入理解其核心机制和最佳实践,开发者可以构建高效、可维护的Web应用。随着Spring框架的不断演进,如Spring Boot和Spring Cloud等,Spring3 MVC的理念和设计模式仍具有很高的参考价值。
《网上书城 Spring-MVC》项目是基于Spring-MVC框架构建的一个典型电子商务平台,它展示了如何使用Spring-MVC来实现高效、...开发者可以通过学习和实践这个项目,深入理解Spring-MVC的机制和最佳实践,提升Web开发能力。
** Maven构建Spring3 MVC与Hibernate整合详解 ** 在软件开发中,Maven是一个强大的...在实际开发中,还需要结合最佳实践和具体需求进行调整和优化。通过阅读博文链接中的内容,可以获取更具体的实现细节和示例代码。
同时,模板中的最佳实践和常见配置示例可以帮助开发者理解和学习这些技术的使用方式。 在实际使用过程中,开发者可以按照以下步骤操作: 1. 解压"Spring4Spring-MVc.rar",得到项目目录结构。 2. 使用IDE导入Maven...
《Spring 2.0 核心技术与最佳实践》是由知名IT教育家廖雪峰编写的教程,旨在为从初学者到高级工程师提供全面而深入的Spring 2.0框架理解与应用指导。Spring框架是Java开发中的核心工具,尤其在企业级应用中广泛使用...
以上是Spring MVC的基本知识点,这份学习指南可能会详细讲解这些内容,并提供实际案例和最佳实践,帮助读者从基础到高级全面掌握Spring MVC。通过深入学习,开发者能够更好地构建高效、可扩展的Web应用。
在Web应用开发中,Spring3 MVC框架和Ajax技术的结合使用能够极大地提升用户体验,实现页面的无刷新更新。本文将深入探讨如何在Spring3 MVC项目中集成Ajax,以便更好地理解这两者的协同工作原理。 **一、Spring3 MVC...
通过学习本书,开发者不仅可以掌握Java EE开发的基本技能,还能深入理解Spring、Spring MVC和MyBatis这三个框架的原理和最佳实践。这将有助于他们在实际工作中构建出更加高效、可扩展的后端应用,同时也能提升团队...
通过深入理解Spring的核心技术和最佳实践,开发者可以创建出高效、可维护的Web应用程序。在实际开发中,掌握HTTP协议原理、Servlet组件的使用以及Spring MVC的配置和编程模型,对于优化代码结构和提升开发效率至关...
在面试中,对Spring MVC的深入理解和源代码分析能力通常被视为高级Java开发者的重要技能。这份【面试资料】-(机构内训资料)看透Spring MVC源代码分析与实践.zip文件很可能是为了帮助求职者准备相关面试问题而设计...
《精通Spring Web MVC》 Spring Web MVC是Spring框架的核心组件之一,它为构建基于Java的Web应用程序提供了模型-...通过阅读《Mastering Spring Webmvc》及参考博文,可以深入理解Spring MVC的内部机制和最佳实践。
在实际应用中,我们还会涉及到一些高级特性和最佳实践,例如: - **AOP(面向切面编程)**:可以用来实现事务管理、日志记录等功能,通过定义切面和通知,将这些通用逻辑与业务代码解耦。 - **Spring Data JPA**:...
在IT行业中,Spring MVC 和 MyBatis 是两个非常重要的框架,它们分别负责Web应用程序的控制器层和数据访问层。Spring MVC 提供了模型-视图-控制器架构模式的实现,而MyBatis则是一个轻量级的SQL映射框架,用于简化...
这个"最新Spring3 MVC 示例 demo程序"旨在帮助开发者理解并掌握Spring 3的最新特性和最佳实践。 1. **Spring MVC基本架构** Spring MVC通过DispatcherServlet作为前端控制器,它负责接收HTTP请求,并根据请求信息...
《Spring4-MVC-Gradle:构建现代Java Web应用程序的基石》 在现代Web开发领域,Spring框架以其强大的功能和灵活性...通过深入研究这个项目,你可以掌握构建现代Web应用的关键技术和最佳实践,从而提升你的开发技能。
- 开源项目:通过阅读和分析开源项目中的Spring MVC代码,可以学习到实际应用场景下的最佳实践。 总之,Spring MVC提供了一种强大且灵活的方式来构建Web应用程序,其注解驱动的特性极大地简化了开发流程。通过理解...