亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

[Spring MVC]學習筆記--FreeMarker的使用

2019-11-14 20:52:53
字體:
來源:轉載
供稿:網友
[SPRing MVC]學習筆記--FreeMarker的使用

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

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

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

注:我是在maven基礎上進行的構建, 很多解釋已經在代碼中加了, 所以盡量貼代碼.

FreeMarker Site:http://freemarker.org/

1. 整個文件夾結構

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內容

<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內容

<?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"/>    <!-- 添加注解驅動 -->    <mvc:annotation-driven enable-matrix-variables="true"/>    <!--<context:annotation-config/>-->    <!-- 允許對靜態資源文件的訪問 -->    <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內容

/*  * 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>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
yellow中文字幕久久| 国产精品久久久久久久久久99| 国产欧美日韩视频| 国产精品免费久久久久久| 欧美三级xxx| 亚洲在线观看视频| 国产精品扒开腿做爽爽爽的视频| 91精品国产成人| 国产女同一区二区| 欧美日韩国产在线看| 成人黄色在线观看| 精品久久久久久久久久久久久久| 国产91免费看片| 亚洲护士老师的毛茸茸最新章节| 北条麻妃一区二区在线观看| 中文字幕v亚洲ⅴv天堂| 亚洲免费精彩视频| 亚洲欧洲偷拍精品| 欧美大片免费观看在线观看网站推荐| 午夜欧美大片免费观看| 色偷偷亚洲男人天堂| 欧美成人免费在线观看| 另类美女黄大片| 亚洲free性xxxx护士白浆| 久青草国产97香蕉在线视频| 亚洲一级一级97网| 亚洲深夜福利网站| 久久精品视频在线播放| 久久久久久久国产精品| 亚洲成av人乱码色午夜| 亚洲国产精品人人爽夜夜爽| 成人精品一区二区三区电影免费| 久久亚洲电影天堂| 精品中文字幕乱| 日韩av123| 一本一道久久a久久精品逆3p| 久久91精品国产| 国产精品美女久久久免费| 欧美亚洲视频在线看网址| 久久九九全国免费精品观看| 欧美电影在线观看完整版| 国产精品99久久久久久人| 久久天天躁夜夜躁狠狠躁2022| 亚洲在线观看视频网站| 在线观看久久久久久| 国产手机视频精品| 最近2019中文字幕一页二页| 日韩大陆欧美高清视频区| 98精品在线视频| 午夜精品久久久久久久久久久久久| 国内久久久精品| 69av在线视频| 日韩欧美在线视频免费观看| 另类美女黄大片| 久久理论片午夜琪琪电影网| 欧美亚洲国产日韩2020| 国产精品视频999| 欧美成人亚洲成人日韩成人| 97色在线观看免费视频| 国产精品免费在线免费| 精品视频在线播放色网色视频| 中文字幕一区二区精品| 亚洲女人天堂视频| www.亚洲成人| 亚洲精品乱码久久久久久按摩观| 日韩在线视频国产| 色青青草原桃花久久综合| 日产日韩在线亚洲欧美| 欧美黑人巨大精品一区二区| 亚洲电影在线看| 自拍视频国产精品| 久久天天躁狠狠躁夜夜爽蜜月| 欧美日韩国产影院| 国产美女久久精品香蕉69| 久久男人av资源网站| 色综合五月天导航| 国产精品视频自拍| 亚洲综合精品伊人久久| 日韩高清av一区二区三区| 日韩成人av在线播放| 精品国产乱码久久久久酒店| 色噜噜亚洲精品中文字幕| www亚洲精品| 国产精品成人免费电影| 成人激情视频网| 日韩女在线观看| 国产91精品最新在线播放| 国产精品视频内| 456亚洲影院| 欧美激情国产日韩精品一区18| 欧美精品国产精品日韩精品| 亚洲人a成www在线影院| 精品毛片三在线观看| 国产精品偷伦一区二区| 欧美成年人视频网站| 91精品免费久久久久久久久| 中文字幕国产日韩| 色诱女教师一区二区三区| 欧美激情一二三| 欧美亚洲日本黄色| 日韩国产在线看| 久久国产精品视频| 国产精品视频在线观看| 中文字幕日韩电影| 欧美疯狂做受xxxx高潮| 亚洲国产日韩欧美在线图片| 亚洲跨种族黑人xxx| 亚洲偷欧美偷国内偷| 国产欧美精品va在线观看| 中文字幕欧美精品日韩中文字幕| 国产精品91久久久久久| 亚洲电影免费观看高清完整版在线观看| 亚洲国产精品成人一区二区| 亚洲成av人乱码色午夜| 97精品伊人久久久大香线蕉| 日韩精品免费一线在线观看| 91精品久久久久久久| 海角国产乱辈乱精品视频| 色琪琪综合男人的天堂aⅴ视频| 国内精品美女av在线播放| 揄拍成人国产精品视频| 精品色蜜蜜精品视频在线观看| 欧美成人全部免费| 裸体女人亚洲精品一区| 久久久亚洲天堂| www.久久久久| 久久久久亚洲精品成人网小说| 性色av一区二区三区在线观看| 欧美性猛交xxxx乱大交3| 美女黄色丝袜一区| 欧美理论电影在线播放| 欧美成人免费va影院高清| 69视频在线播放| 久久精品成人动漫| 亚洲欧美制服综合另类| 久久夜色精品亚洲噜噜国产mv| 国产精品草莓在线免费观看| 日韩在线精品一区| 热久久美女精品天天吊色| 中文字幕欧美日韩va免费视频| 久久久国产视频91| 伊人久久久久久久久久久久久| 国产aaa精品| 日韩精品在线视频美女| 欧美午夜电影在线| 欧美性感美女h网站在线观看免费| 国产精品扒开腿做爽爽爽男男| 国产欧美精品日韩精品| 精品久久久久久久久久久久久久| 国产精品成人国产乱一区| 欧美一二三视频| 国产欧美日韩高清| 久久999免费视频| 午夜精品福利电影| 色偷偷综合社区| 欧美人与性动交a欧美精品| 国产成人久久久| 欧美性猛交xxxx富婆| 一本一本久久a久久精品综合小说| 69久久夜色精品国产69乱青草| 在线免费观看羞羞视频一区二区| 国产亚洲精品综合一区91| 91av在线播放视频| 黄色一区二区在线|