• Spring整合Freemarker


    我的開發環境
      框架:           springmvc
      開發工具:    springsource-tool-suite-2.9.0
      JDK版本:    1.6.0_29
      tomcat版本:apache-tomcat-7.0.26

         本文地址:http://www.cnblogs.com/sunang/p/3419676.html 轉載請注明出處^_^

    本文要注意的點已经用          標注,請大家要特別注意。

    前言:FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

    簡而言之,Freemarker就是在Jave Web開發中以模板的方式在頁面展示從服務端獲取的信息。

    更多信息請訪問:http://baike.baidu.com/view/1278430.htm  http://freemarker.org/

    本文的操作是在已經配好SpringMVC的開發環境中進行,如果你對配置SpringMVC尚不熟悉,可以先移步到:http://www.cnblogs.com/sunang/p/3419544.html 學習一下SpringMVC的基本配置。

    Now go!

    step1.引入jar包

    Maven代碼:

    <!-- Freemarker -->
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.20</version>
    </dependency>
    <!-- ui.freemarker -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>3.2.4.RELEASE</version>
    </dependency>

    step2.在src/main/resources/conf目錄下新建Freemarker屬性文件freemarker.properties,此屬性文件定義了Freemarker常用的編碼轉換,代碼如下:

    tag_syntax=auto_detect
    template_update_delay=2
    default_encoding=UTF-8
    output_encoding=UTF-8
    locale=zh_CN
    date_format=yyyy-MM-dd
    time_format=HH:mm:ss
    datetime_format=yyyy-MM-dd HH:mm:ss

    step3.在DispatcherServlet上下文配置文件spring-servlet.xml中添加Freemarker所需的配置,代碼如下:

    <!-- 配置Freemarker屬性文件路徑 -->
    <bean id="freemarkerConfiguration"        class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="location" value="classpath:conf/freemarker.properties" />
    </bean>
    <!-- 配置freeMarker模板加載地址 -->
    <bean id="freemarkerConfig"        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <!-- 視圖解析器會在/WEB-INF/ftl/路徑下掃描視圖文件 -->
        <property name="templateLoaderPath" value="/WEB-INF/ftl/" />
        <property name="freemarkerVariables">
            <map>
                <entry key="xml_escape" value-ref="fmXmlEscape" />
            </map>
        </property>
    </bean>
    <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />
    <!-- 配置freeMarker視圖解析器 -->
    <bean id="freemakerViewResolver"        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="viewClass"        value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
        <!-- 掃描路徑內所有以ftl結尾的文件 -->
        <property name="viewNames">
            <array>
                <value>*.ftl</value>
            </array>
        </property>
        <property name="contentType" value="text/html; charset=UTF-8" />
        <property name="exposeRequestAttributes" value="true" />
        <property name="exposeSessionAttributes" value="true" />
        <property name="exposeSpringMacroHelpers" value="true" />
        <property name="requestContextAttribute" value="request" />
        <!-- 給視圖解析器配置優先級,你可以給之前jsp視圖解析器的值配為2 -->
        <property name="order" value="1" />
    </bean>

    step4.編寫controller文件和ftl文件

        在src/main/java目錄下新建包www.asuan.com.controller,在包下新建HelloWorldController.java,代碼如下:

    package www.asuan.com.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class HelloWorldController {
        @RequestMapping("/helloWorld")
        public String helloWorld(Model model) {
           String word0 = "Hello ";
           String word1 = "World!";
           //將數據添加到視圖數據容器中
           model.addAttribute("word0",word0);
           model.addAttribute("word1",word1);
            return "helloWorld.ftl";
        }
    }

      在step3中配置的WEB-INF/ftl路徑下新建helloWorld.ftl,代碼如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h2>${word0}${word1}</h2>
    </body>
    </html>

    step5.運行與調試

        將工程部署到tomcat并運行,在瀏覽器中訪問:http://localhost:8080/你設置的工程名/helloWorld.htm

    運行結果:

    complete!

    ps.本文的盜版在iteye,地址如下:http://aijuans.iteye.com/blog/1974888

  • 相关阅读:
    字符串与字典常用命令
    Python学习之路:字符串常用操作
    Python学习之路:购物车实例
    面试题2017
    c#语法学习
    结构化设计模式-桥接模式
    结构型设计模式-适配器模式
    .Net Cache
    设计模式的六大原则
    uml类图关系
  • 原文地址:https://www.cnblogs.com/sunang/p/3419676.html
Copyright © 2020-2023  润新知