国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

[Spring MVC]學(xué)習(xí)筆記--FreeMarker的使用

2019-11-14 20:52:53
字體:
供稿:網(wǎng)友
[SPRing MVC]學(xué)習(xí)筆記--FreeMarker的使用

還是先貼出該例子存于github上的位置

https://github.com/lemonbar/spring-mvc-freemarker

Sping-Framework 的官方文檔簡單列出了在spring-mvc中如何使用freemarker, 但是相對來說提供的信息和例子太少, 所以在這給出一個詳細(xì)的例子.

注:我是在maven基礎(chǔ)上進(jìn)行的構(gòu)建, 很多解釋已經(jīng)在代碼中加了, 所以盡量貼代碼.

FreeMarker Site:http://freemarker.org/

1. 整個文件夾結(jié)構(gòu)

src    main        java            com.lemon.spring.controller                GreetingController        webapp            WEB-INF                ftl                    footer.ftl                    header.ftl                    login.ftl                    welcome.ftl                root-context.xml                web.xmlpom.xml

2. pom.xml內(nèi)容

<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/maven-v4_0_0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.lemon.spring</groupId>    <artifactId>spring-mvc-freemarker</artifactId>    <packaging>war</packaging>    <version>1.0-SNAPSHOT</version>    <name>spring-mvc-freemarker Maven Webapp</name>    <url>http://maven.apache.org</url>    <properties>        <spring.framework.version>4.0.6.RELEASE</spring.framework.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>${spring.framework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>${spring.framework.version}</version>        </dependency>        <!--context-support should be included for freemarker bean definition.-->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context-support</artifactId>            <version>${spring.framework.version}</version>        </dependency>        <dependency>            <groupId>org.freemarker</groupId>            <artifactId>freemarker</artifactId>            <version>2.3.20</version>        </dependency>    </dependencies>    <build>        <finalName>spring-mvc-freemarker</finalName>    </build></project>

3. web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"         version="3.0">    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>WEB-INF/root-context.xml</param-value>    </context-param>    <servlet>        <servlet-name>dispatcher</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value></param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>dispatcher</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping>    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener></web-app>

4. root-context.xml內(nèi)容

<?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.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc.xsd">    <context:component-scan base-package="com.lemon.spring"/>    <!-- 添加注解驅(qū)動 -->    <mvc:annotation-driven enable-matrix-variables="true"/>    <!--<context:annotation-config/>-->    <!-- 允許對靜態(tài)資源文件的訪問 -->    <mvc:default-servlet-handler />    <!--freemarker config-->    <bean id="freemarkerConfig"          class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">        <property name="templateLoaderPath" value="/WEB-INF/ftl/"/>    </bean>    <!--    View resolvers can also be configured with ResourceBundles or XML files.    If you need different view resolving based on Locale, you have to use the resource bundle resolver.    -->    <bean id="viewResolver"          class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">        <property name="cache" value="true"/>        <property name="prefix" value=""/>        <property name="suffix" value=".ftl"/>    </bean></beans>

5. GreetingController.java內(nèi)容

/*  * Copyright (c) 2014 General Electric Company. All rights reserved.  *  * The copyright to the computer software herein is the property of  * General Electric Company. The software may be used and/or copied only  * with the written permission of General Electric Company or in accordance  * with the terms and conditions stipulated in the agreement/contract  * under which the software has been supplied.  */package com.lemon.spring.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;import java.util.Arrays;import java.util.List;@Controllerpublic class GreetingController {    @RequestMapping(value = "/greeting/{user}", method = RequestMethod.GET)    public String greeting(@PathVariable String user, Model model) {        List<String> userList = Arrays.asList(user.split("-"));        //userList is the variable name, used in ftl file.        model.addAttribute("userList", userList);        return "welcome";    }    @RequestMapping(value = "/greeting", method = RequestMethod.POST)    public ModelAndView greeting(@RequestParam("user") String user) {        List<String> userList = Arrays.asList(user.split("-"));        ModelAndView result = new ModelAndView("welcome");        //userList is the variable name, used in ftl file.        result.addObject("userList", userList);        return result;    }    @RequestMapping("/login")    public String login() {        return "login";    }}

6. welcome.ftl

<html><head>    <title>Welcome!</title></head><body><#include "./header.ftl"/><table border="1">    <tr><th>Name</th><th>Price</th></tr>    <#list userList as user>        <tr><th>${user}</th><th>1.0</th></tr>    </#list></table><!--use include to include another ftl file content in this file.--><#include "./footer.ftl"/></body></html>

7. login.ftl

<#import "/spring.ftl" as spring/><html><head>    <title>Please input your names, seperator with '-' char.</title></head><body><#include "./header.ftl"/><form action="greeting" method="POST">    Names:    <input type="text" name="user"/><br>    <input type="submit" value="submit"/></form><!--use include to include another ftl file content in this file.--><#include "./footer.ftl"/></body></html>

8. footer.ftl

<hr><i>    Copyright (c) 2014 <a >Acmee    Inc</a>,    <br>    All Rights Reserved.</i>

9. header.ftl

<h1>    This is header!</h1><hr>


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 贞丰县| 南江县| 米易县| 清水县| 淮安市| 孟州市| 庆云县| 桃源县| 甘孜县| 罗城| 延吉市| 江孜县| 曲沃县| 湖口县| 邵阳市| 南江县| 鄂托克旗| 繁峙县| 武山县| 娄底市| 岳普湖县| 邻水| 牙克石市| 巴里| 枣阳市| 三都| 盐边县| 新郑市| 新巴尔虎左旗| 江达县| 无为县| 新建县| 辽宁省| 高平市| 镇远县| 苏尼特右旗| 都匀市| 广河县| 湾仔区| 永丰县| 西峡县|