Spring MVC 整合 Freemarker

本文介绍如何在Spring MVC框架中整合Freemarker模板引擎,包括所需Jar包配置、web.xml配置、添加Spring MVC配置等内容,并通过一个简单的Hello World示例演示整个过程。
摘要由CSDN通过智能技术生成

from: http://blog.csdn.net/yakson/article/details/9813531

前言

1.为什么要使用spring MVC呢?

2.为什么要使用Freemarker呢?

3.为什么不使用Struts2呢?

此示例出现的原因就是发现了struts2的性能太差,所以学习Spring MVC。又由于前一个项目使用的是Struts2+Freemarker写的,所以要替换Struts2就需要让Spring MVC也要支持Freemarker。

项目准备

1.Spring 包

spring2.5.6.jar

spring-aop.jar

spring-beans.jar

spring-context.jar

spring-context-support.jar

spring-core.jar

spring-jdbc.jar

spring-jms.jar

spring-orm.jar

spring-test.jar

spring-tx.jar

spring-web.jar

spring-webmvc.jar

spring-webmvc-portlet.jar

spring-webmvc-struts.jar

2.Freemarker包

freemarker-2.3.19.jar

加粗的部分为项目需要引入的包。

开始我们的整合之旅吧!

开发工具:NetBeans IDE 7.3.1

一、新建web项目springMVCAndFreemarker

二、将jar包引入项目

spring.jar

spring-webmvc.jar

freemarker.jar

依赖包

commons-logging.jar

三、配置web.xml

WEB-INF/web.xml

[html]  view plain  copy
 print ?
  1. <!--  Spring 上下文参数 -->  
  2. <context-param>  
  3.     <param-name>contextConfigLocation</param-name>  
  4.     <param-value>classpath:applicationContext.xml</param-value>  
  5. </context-param>  
  6.   
  7. <!--  Spring 容器启动器 -->  
  8. <listener>  
  9.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  10. </listener>  
  11. <servlet>  
  12.     <servlet-name>springmvc</servlet-name>  
  13.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  14.     <load-on-startup>1</load-on-startup>  
  15. </servlet>  
  16. <!--为DispatcherServlet建树映射 -->  
  17. <servlet-mapping>  
  18.     <servlet-name>springmvc</servlet-name>  
  19.     <url-pattern>/*</url-pattern>  
  20. </servlet-mapping>  
四、添加applicationContext.xml文件

src/applicationContext.xml

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xsi:schemaLocation="http://www.springframework.org/schema/beans   
  5.        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  6.   
  7. </beans>  

接着在内容中添加Freemarker的支持配置

[html]  view plain  copy
 print ?
  1. <!-- Freemarker配置 -->  
  2. <bean id="freemarkerConfig"  
  3.       class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
  4.     <property name="templateLoaderPath" value="/WEB-INF/view/" />  
  5.     <property name="freemarkerSettings">  
  6.         <props>  
  7.             <prop key="template_update_delay">0</prop>  
  8.             <prop key="default_encoding">UTF-8</prop>  
  9.             <prop key="number_format">0.##########</prop>  
  10.             <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>  
  11.             <prop key="classic_compatible">true</prop>  
  12.             <prop key="template_exception_handler">ignore</prop>  
  13.         </props>  
  14.     </property>  
  15. </bean>  

五、添加spring MVC的servlet配置文件,命名规则(servlet-name+servlet.xml)

WEB-INF/springmvc-servlet.xml

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xsi:schemaLocation="http://www.springframework.org/schema/beans   
  5.        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  6.   
  7. </beans>  
接着在内容中添加Spring MVC的配置

[html]  view plain  copy
 print ?
  1. <!--视图解释器 -->  
  2. <bean id="viewResolver"  
  3.       class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
  4.     <property name="suffix">  
  5.         <value>.ftl</value>  
  6.     </property>  
  7.     <property name="contentType" value="text/html;charset=UTF-8"></property>  
  8. </bean>  
六、创建控制器Controller类

com.qisentech.springmvc.action.HelloWordController.Java

[java]  view plain  copy
 print ?
  1. /* 
  2.  * 文 件 名 : com.qisentech.springmvc.action.HelloWordController.java 
  3.  * 创建日期 : 2013-8-7 11:40:04 
  4.  * 创 建 者 : qsyang 
  5.  */  
  6. package com.qisentech.springmvc.action;  
  7.   
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10. import org.springframework.web.servlet.ModelAndView;  
  11. import org.springframework.web.servlet.mvc.Controller;  
  12.   
  13. /** 
  14.  * <p>Title: </p> 
  15.  * 
  16.  * <p>Description: </p> 
  17.  * 
  18.  * @author qsyang 
  19.  * @version 1.0 
  20.  */  
  21. public class HelloWordController implements Controller {  
  22.   
  23.     @Override  
  24.     public ModelAndView handleRequest(HttpServletRequest hsr  
  25.             , HttpServletResponse hsr1) throws Exception {  
  26.         ModelAndView mv = new ModelAndView("hello");  
  27.         mv.addObject("title""Spring MVC And Freemarker");  
  28.         mv.addObject("content"" Hello world , test my first spring mvc ! ");  
  29.         return mv;  
  30.     }  
  31. }  
代码中new ModelAndView("hello")中的hello就是模板文件的名称
由于我们的Freemarker的模板文件是配置在WEB-INF/view下,参考applicationContext.xml配置
<property name="templateLoaderPath" value="/WEB-INF/view/" />
所以我们需要在WEB-INF/view下新建模板文件,名称(hello.ftl)

[html]  view plain  copy
 print ?
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   
  2.  "http://www.w3.org/TR/html4/loose.dtd">  
  3. <html>  
  4.     <head>  
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  6.         <title>${title}</title>  
  7.     </head>  
  8.     <body>  
  9.         ${content}  
  10.     </body>  
  11. </html>  

七、将控制器交给Spring MVC进行拦截

添加以下内容到springmvc-servlet.xml

[html]  view plain  copy
 print ?
  1. <!-- 地址转发器 -->  
  2. <bean name="HelloAction" class="com.qisentech.springmvc.action.HelloWordController" />  
  3. <bean id="urlMapping"  
  4.       class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  5. <property name="mappings">  
  6.     <props>  
  7.         <!-- 映射URL地址 -->  
  8.         <prop key="/hello">HelloAction</prop>  
  9.     </props>  
  10. </property>  
  11. </bean>  

以上步骤处理好,我们就可以运行了

访问地址:http://localhost:8088/springMVCAndFreemarker/hello
页面输出:
Hello world , test my first spring mvc !
就此,我们的第一个Spring MVC + Freemarker的示例结束了!

需要源码的,可以留言,留下邮箱,我看到了给你发过去!

附上项目结构图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值