SpringMVC整合Freemarker(含Demo源碼)__freemarker

來源:互聯網
上載者:User

整合過程如下:

1.建立一個maven web工程,使用maven依賴spring,springmvc,freemarker的相關jar,建好後的項目目錄如下:

pom.xml檔案中的配置如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.ffcs.oss</groupId>    <artifactId>SpringMVC_Freemarker</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>war</packaging>    <properties>        <org.springframework.version>4.1.6.RELEASE</org.springframework.version>        <freemarker.version>2.3.23</freemarker.version>    </properties>    <dependencies>        <dependency>            <groupId>org.freemarker</groupId>            <artifactId>freemarker</artifactId>            <version>${freemarker.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-beans</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aop</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context-support</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>${org.springframework.version}</version>        </dependency>    </dependencies></project>

2.配置web.xml檔案

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"    id="WebApp_ID" version="3.0">    <servlet>        <servlet-name>springDispatcherServlet</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:springmvc_freemarker.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springDispatcherServlet</servlet-name>        <url-pattern>/*</url-pattern>    </servlet-mapping></web-app>

3.配置springmvc和freemarker整合的設定檔springmvc_freemarker.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">    <context:component-scan base-package="com.ffcs"></context:component-scan>    <mvc:annotation-driven></mvc:annotation-driven>    <bean id="freeMarkerConfigurer"        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">        <property name="templateLoaderPath" value="/WEB-INF/ftl/"></property>        <property name="defaultEncoding" value="utf-8" />        <property name="freemarkerSettings">            <props>                <prop key="template_update_delay">1</prop>                <prop key="locale">zh_CN</prop>                <prop key="datetime_format">yyyy-MM-dd</prop><!-- 時間格式化 -->                <prop key="date_format">yyyy-MM-dd</prop>                <prop key="number_format">#.##</prop>            </props>        </property>    </bean>    <bean id="freeMarkerViewResolver"        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">        <property name="cache" value="true" />        <property name="prefix" value="" /><!-- 上面已經配了,這裡就不用配啦 -->        <property name="suffix" value=".ftl" />        <property name="contentType" value="text/html;charset=UTF-8" />        <property name="allowSessionOverride" value="true" />        <property name="allowRequestOverride" value="true" />        <property name="exposeSpringMacroHelpers" value="true" />        <property name="exposeRequestAttributes" value="true" />        <property name="exposeSessionAttributes" value="true" />        <property name="requestContextAttribute" value="request" />    </bean></beans>

4.在WEB-INF/ftl/目錄下建立一個freemarker的模板檔案may.ftl,內容如下:

User:<br/>${user.name}--->${user.age}<br/>List:<br/><#list list as item ><font color="red">${item}</br></font></#list>param:</br>${RequestParameters.a}&nbsp;a=${param!}

5.編寫User和TestFreemarker這兩個類,代碼如下所示:
User類:

package com.ffcs.oss.domain;import java.io.Serializable;public class User implements Serializable {    /**     *      */    private static final long serialVersionUID = 1L;    private String name;    private Integer age;    public User() {        super();    }    public User(String name, Integer age) {        super();        this.name = name;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }}

TestFreemarker類:

package com.ffcs.oss.controller;import java.util.ArrayList;import java.util.List;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import com.ffcs.oss.domain.User;@Controller@RequestMapping(value = "/Freemarker")public class TestFreemarker {    @RequestMapping(value = "/testFreemarker")    @ResponseBody    public ModelAndView testFreemarker(@RequestParam(value = "a", required = false) String a) throws Exception {        ModelAndView mv = new ModelAndView();        User user = new User("may", 21);        List<String> list = new ArrayList<String>();        list.add("Jack1");        list.add("Jack2");        list.add("Jack3");        mv.addObject("list", list);        mv.addObject("user", user);        mv.addObject("param", new String(a.getBytes("iso8859-1"), "utf-8"));        mv.setViewName("may");        return mv;    }}

6.將項目布署到tomcat運行起來,項目啟動如果沒有報錯,那麼開啟瀏覽器,輸入URL:http://localhost:8080/SpringMVC_Freemarker/Freemarker/testFreemarker?a=123 ,斷行符號後效果圖如下所示:

到此為止,已經成功整合了SpringMVC和Freemarker。下面附上Demo源碼的下載地址:
連結:http://pan.baidu.com/s/1qYxxEUg
密碼:0azi

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.