文档章节

SpringMvc整合Freemarker

游宵
 游宵
发布于 2014/04/23 01:23
字数 923
阅读 3129
收藏 14

1、 新建WebProject,工程名称是SpringFreemarker;然后手动添加jar包,需要的jar包如下: 

 

SpringFramework jar包下载地址: 

http://ebr.springsource.com/repository/app/library/version/detail?name=org.springframework.spring&version=3.0.5.RELEASE 

FreeMarker library下载地址: 

http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.freemarker&version=2.3.15 

当然你也可以去官方下载 

2、 在web.xml中添加如下配置: 

Java代码  收藏代码

  1. <!-- 加载Spring容器配置 -->  

  2. <listener>  

  3.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  

  4. </listener>  

  5. <!-- 设置Spring容器加载配置文件路径 -->  

  6. <context-param>  

  7.     <param-name>contextConfigLocation</param-name>  

  8.     <param-value>classpath*:applicationContext-*.xml</param-value>  

  9. </context-param>  

  10.    

  11. <servlet>  

  12.     <servlet-name>dispatcher</servlet-name>  

  13.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

  14.     <init-param>  

  15.         <param-name>contextConfigLocation</param-name>  

  16.         <param-value>/WEB-INF/dispatcher.xml</param-value>  

  17.     </init-param>  

  18.     <load-on-startup>1</load-on-startup>  

  19. </servlet>  

  20.    

  21. <servlet-mapping>  

  22.     <servlet-name>dispatcher</servlet-name>  

  23.     <url-pattern>*.do</url-pattern>  

  24. </servlet-mapping>  



上面分别是添加Spring的监听器、以及配置Spring的配置文件、还有SpringMVC的控制器; 

3、 在WEB-INF中添加文件dispatcher.xml,和web.xml中的对应。内容如下: 

Java代码  收藏代码

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <beans xmlns="http://www.springframework.org/schema/beans"  

  3.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"  

  4.     xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans >  

  6.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  

  7.     http://www.springframework.org/schema/mvc  

  8.     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  

  9.     http://www.springframework.org/schema/context   

  10.     http://www.springframework.org/schema/context/spring-context-3.0.xsd  

  11.     http://www.springframework.org/schema/util  

  12.     http://www.springframework.org/schema/util/spring-util-3.0.xsd"  

  13.    

  14.     <context:component-scan base-package="com.hoo" />  

  15.    

  16.     <!-- annotation的方法映射适配器   

  17.     <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>  

  18.     -->  

  19.     <!--  annotation默认的方法映射适配器 -->  

  20.     <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>  

  21.       

  22.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  

  23.         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  

  24.     </bean>  

  25.        

  26. </beans>  



上面是SpringMVC的基本配置 

4、 在src中添加applicationContext-beans.xml,内容如下: 


Java代码  收藏代码

  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.     xmlns:aop="http://www.springframework.org/schema/aop"  

  5.     xmlns:tx="http://www.springframework.org/schema/tx"   

  6.     xmlns:util="http://www.springframework.org/schema/util"  

  7.     xmlns:context="http://www.springframework.org/schema/context"  

  8.     xsi:schemaLocation="http://www.springframework.org/schema/beans >  

  9.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  

  10.     http://www.springframework.org/schema/aop   

  11.     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  

  12.     http://www.springframework.org/schema/tx   

  13.     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  

  14.     http://www.springframework.org/schema/util   

  15.     http://www.springframework.org/schema/util/spring-util-3.0.xsd  

  16.     http://www.springframework.org/schema/context   

  17.     http://www.springframework.org/schema/context/spring-context-3.0.xsd"  

  18. </beans>  



里面可以添加一些bean的配置 

5、 在src目录添加freemarker.properties配置文件,这个文件是freemarker一些常用的转换,内容如下: 

Java代码  收藏代码

  1. tag_syntax=auto_detect  

  2. template_update_delay=2  

  3. default_encoding=UTF-8  

  4. output_encoding=UTF-8  

  5. locale=zh_CN  

  6. date_format=yyyy-MM-dd  

  7. time_format=HH:mm:ss  

  8. datetime_format=yyyy-MM-dd HH:mm:ss  



6、 在dispatcher.xml中添加freemarker的配置,配置如下: 

Java代码  收藏代码

  1. <!-- 设置freeMarker的配置文件路径 -->  

  2. <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">  

  3.     <property name="location" value="classpath:freemarker.properties"/>  

  4. </bean>  

  5.    

  6. <!-- 配置freeMarker的模板路径 -->  

  7. <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  

  8.     <!--property name="freemarkerSettings" ref="freemarkerConfiguration"/-->  

  9.     <property name="templateLoaderPath">  

  10.         <value>/WEB-INF/ftl/</value>  

  11.     </property>  

  12.     <property name="freemarkerVariables">  

  13.         <map>  

  14.             <entry key="xml_escape" value-ref="fmXmlEscape" />  

  15.         </map>  

  16.     </property>  

  17. </bean>  

  18.    

  19. <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>  

  20.    

  21. <!-- 配置freeMarker视图解析器 -->  

  22. <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  

  23.     <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>  

  24.     <property name="viewNames" value="*.ftl"/>  

  25.     <property name="contentType" value="text/html; charset=utf-8"/>  

  26.     <property name="cache" value="true" />  

  27.     <property name="prefix" value="" />  

  28.     <property name="suffix" value="" />  

  29.     <property name="order" value="2"/>  

  30. </bean>  



上面最关键的就是freeMarker的视图解析器viewResolver的配置,viewClass是使用哪个视图解析器,这里是类路径;其他的和jsp的视图解析器都很类似。 

7、 下面在WEB-INF中添加2个ftl模板,在WEB-INF添加ftl,然后添加hello.ftl/hi.ftl,内容分别是: 

hello.ftl 

Java代码  收藏代码

  1. <html>  

  2. <body>  

  3.     <h1>say hello ${name}</h1><br/>  

  4.     ${(1 == 1)?string("yes""no")}  

  5. </body>  

  6. </html>  


hi.ftl 

Java代码  收藏代码

  1. <html>  

  2. <body>  

  3.     <h1>say hello ${name}</h1><br/>  

  4.     ${(1 != 1)?string("yes""no")}  

  5. </body>  

  6. </html>  



8、 添加Controller控制器,代码如下: 

Java代码  收藏代码

  1. package com.hoo.controller;  

  2.    

  3. import org.springframework.stereotype.Controller;  

  4. import org.springframework.ui.ModelMap;  

  5. import org.springframework.web.bind.annotation.RequestMapping;  

  6.    

  7. /** 

  8.  * <b>function:</b> FreeMarker示例控制器 

  9.  * @author hoojo 

  10.  * @createDate 2011-3-3 下午04:50:10 

  11.  * @file HelloWorldController.java 

  12.  * @package com.hoo.controller 

  13.  * @project SpringFreemarker 

  14.  * @version 1.0 

  15.  */  

  16. @Controller   

  17. @RequestMapping("/freeMarker")  

  18. public class HelloWorldController {  

  19.       

  20.     @RequestMapping("/hello")  

  21.     public String sayHello(ModelMap map) {  

  22.         System.out.println("say Hello ……");  

  23.         map.addAttribute("name"" World!");  

  24.         return "/hello.ftl";  

  25.     }  

  26.       

  27.     @RequestMapping("/hi")  

  28.     public String sayHi(ModelMap map) {  

  29.         System.out.println("say hi ……");  

  30.         map.put("name""jojo");  

  31.         return "/hi.ftl";  

  32.     }  

  33.       

  34.     @RequestMapping("/jsp")  

  35.     public String jspRequest(ModelMap map) {  

  36.         System.out.println("jspRequest ……");  

  37.         map.put("name""jsp");  

  38.         return "/temp.jsp";  

  39.     }  

  40. }  



9、 添加index.jsp的测试链接或temp.jsp的内容: 

index.jsp 

Java代码  收藏代码

  1. <body>  

  2.       <a href="freeMarker/hello.do">say hello</a><br/>  

  3.       <a href="freeMarker/hi.do">say hi</a><br/>  

  4.       <a href="freeMarker/jsp.do">jspRequest</a>  

  5. </body>  


temp.jsp 

Java代码  收藏代码

  1. <body>  

  2.     <h3>${name }</h3>  

  3. </body>  



本文转载自:http://osacar.iteye.com/blog/1049434

上一篇: spring+quartz
下一篇: SpringMvc数据绑定2
游宵
粉丝 2
博文 7
码字总数 0
作品 0
南京
程序员
私信 提问
Spring mvc整合FreeMarker

Spring mvc整合FreeMarker,使用的是Spring mvc 3.2 + FreeMarker 2.3.19,如下所示: 1、新建freemarker.properties,放到src目录下面: 2、在spring配置文件中,加入如下内容: 3、创建Ind...

小99
2014/03/25
243
0
freemarker根据模板生成的html文件存在哪里?

freemarker根据模板生成的html文件存在哪里? 使用的是spring整合freemarker,freemarker生成html文件后应该会暂存在服务器端的吧?

秦时明月
2015/12/18
1K
1
JAVAEE——宜立方商城10:使用freemarker实现网页静态化、ActiveMq同步生成静态网页、Sso单点登录系统分析

1. 学习计划 1、使用freemarker实现网页静态化 2、ActiveMq同步生成静态网页 2. 网页静态化 可以使用Freemarker实现网页静态化。 2.1. 什么是freemarker FreeMarker是一个用Java语言编写的模...

kent鹏
2018/08/01
0
0
FreeMarker | 取值篇

第一部分:Spring Boot 集成 FreeMarker 1、 需要这些依赖 2、yml 我喜欢 yml,所以删掉 ,新建 3、配置 在 中添加如下配置 4、Controller - View 5、运行效果 第二部分:取值 1、学过 free...

Wenyi_Feng
2018/06/14
164
0
在Spring+FreeMarker框架中使用Shiro的Tag标签

目前Freemarker对Shrio的标签还不支持,不过已经有人贡献出来第三方面解决方案,如下: 1、下载shiro-freemarker-tags GitHub地址:https://github.com/jagregory/shiro-freemarker-tags 可以...

zkool
2014/01/19
7.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS盒子模型

一、什么叫框模型 页面元素皆为框(盒子) 定义了元素框处理元素内容,内边距,外边距以及边框的计算方式 二、外边距 围绕在元素边框外的空白距离(元素与元素之间的距离) 语法:margin,定...

wytao1995
今天
4
0
Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部