频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
Spring MVC整合 freemarker教程
2017-01-10 11:11:13      个评论    来源:lianshanghonghong的博客  
收藏   我要投稿

Spring MVC整合 freemarker教程:我最近喜欢freemarker在网上找了大半天、都没有找到一个简单又容易理解的案例。虽然只是一个模板技术、但是相对刚开始什么都不知道的,很难入手。下面是自学(其实是谷歌和百度的东找西补)、写了个小案例,入门的。喜欢的可以看看、不喜欢的可以微笑微笑!

                 开发工具:idea

                 项目构建:maven

                 开发语言:Java

                 整合框架:SpringMVC

                 技术简介:freemarker模板

                 GitHub代码下载:点击下载

1.1、freemarker手册的介绍freemarker

1.2、项目模块结构截图

2、整合案例
2.1、添加依赖
[java] view plain copy
print?在CODE上查看代码片派生到我的代码片

  
      
        SSM-MVC  
        org.ssm.com  
        1.0-SNAPSHOT  
      
    4.0.0  
    springmvc  
    war  
    springmvc Maven Webapp  
    http://maven.apache.org  


      
          
        3.8.1  
        1.2  
        2.5  
        3.1.0  
        7.0  
        <jsp-api.version>2.2  
          
        <aspectjweaver.version>1.7.2  
        1.0.2  
          
        4.3.4.RELEASE  
      

      

          
          
            junit  
            junit  
            ${junit.version}  
            test  
          
          
          
            jstl  
            jstl  
            ${jstl.version}  
          
          
            javax.servlet  
            javax.servlet-api  
            ${javax.servlet-apiversion}  
            provided  
          
          
            javax.servlet  
            servlet-api  
            ${servlet-api.version}  
            provided  
          
          
          
            javax  
            javaee-api  
            ${javaee-api.version}  
            provided  
          
          
            javax.servlet.jsp  
            jsp-api  
            ${jsp-api.version}  
            provided  
          

          
            org.codehaus.jackson  
            jackson-mapper-asl  
            1.9.8  
            jar  
            compile  
          

          
          
            org.springframework  
            spring-context  
            ${spring.version}  
          
          
          
            org.springframework  
            spring-webmvc  
            ${spring.version}  
          
          
          
            org.springframework  
            spring-orm  
            ${spring.version}  
          
          
            org.springframework  
            spring-test  
            ${spring.version}  
          
          
            org.springframework  
            spring-aspects  
            ${spring.version}  
          
          
          
            org.aspectj  
            aspectjweaver  
            ${aspectjweaver.version}  
          

          
            javax.persistence  
            persistence-api  
            ${persistence-api.version}  
          

          
          
            org.springframework  
            spring-context-support  
            3.2.4.RELEASE  
          
          
          
            org.freemarker  
            freemarker  
            2.3.25-incubating  
          


      

      
        springmvc  

          
          
              
                org.apache.tomcat.maven  
                tomcat7-maven-plugin  
                  
                    8080  
                    /  
                  
              
          
          
              
              
                ${basedir}/src/main/java  
                  
                    **/*.config 
                    **/*.xml  
                  
              
              
                ${basedir}/src/main/resources  
              
          



      
  

问题截图:这是没有添加spring-context-support依赖的时候

2.2、web.xml配置、其实是springmvc的配置没变
[java] view plain copy
print?在CODE上查看代码片派生到我的代码片

  

    Archetype Created Web Application  
      
        default.jsp  
        index.jsp  
      



      
      
        dispatcherServlet  
        org.springframework.web.servlet.DispatcherServlet  
          
            contextConfigLocation  
            classpath*:spring/application-*.xml  
          
      
      
        dispatcherServlet  
        /  
      




      
      
        encodingFilter  
        org.springframework.web.filter.CharacterEncodingFilter  
        true  
          
            encoding  
            UTF-8  
          
      
      
        encodingFilter  
        /*  
      


  

2.3、application-springmvc.xml配置(多了freemarker的配置)
[java] view plain copy
print?在CODE上查看代码片派生到我的代码片

  
  


      
      


      
      

      
      


      
      
          
          
      
      
      
          
          
          
          
      

      
      
      
          
          
          
      

  

2.4、定义模板(其实也是一个页面、后者不一样、ftl)
[java] view plain copy
print?在CODE上查看代码片派生到我的代码片

  
Hello ${name}

2.5、springmvc入门案例(页面、其实就是想两个模板来回切换)
[java] view plain copy
print?在CODE上查看代码片派生到我的代码片

<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
  

第一个参数:${message1 }

第二个参数:${message2}

2.6、Controller
[java] view plain copy
print?在CODE上查看代码片派生到我的代码片

package com.springmvc.freemarker;  

import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;  
import org.springframework.web.servlet.ModelAndView;  

import javax.servlet.http.HttpServletRequest;  

/** 
 * @auther 陈郑游 
 * @create 2016/12/29 0029 
 * @功能 
 * @问题 
 * @说明 
 * @URL地址 
 * @进度描述 
 */  
@Controller  
public class FreemarkerAndJsp {  

    /**Freemarker模板的Controller*/  
    @RequestMapping(value="/welcome",method={RequestMethod.GET})  
    public ModelAndView getFirstPage(HttpServletRequest request) {  
        //welcom就是视图的名称(welcom.ftl)  
        ModelAndView mv = new ModelAndView("welcome");  
        mv.addObject("name", "My First Spring Mvc and Freemarker !");  
        return mv;  
    }  


    /**jsp模板的Controller*/  
    @RequestMapping(value="/jsp",method={RequestMethod.GET})  
    public ModelAndView getJsp(HttpServletRequest request) {  

        ModelAndView mv = new ModelAndView("index");  
        mv.addObject("message1", "切换到jsp模板、");  
        mv.addObject("message2", "My First Spring Mvc");  
        mv.setViewName("hello/index");  
        return mv;  
    }  
}  

2.7、效果图

3、freemarker的数据类型

3.1、直接指定值
直接指定值可以是字符串、数值、布尔值、集合及Map对象。
1. 字符串
直接指定字符串值使用单引号或双引号限定。字符串中可以使用转义字符”\”。如果字符串内有大量的特殊字符,则可以在引号 的前面加上一个字母r,则字符串内的所有字符都将直接输出。

数值
数值可以直接输入,不需要引号。FreeMarker不支持科学计数法。

布尔值
直接使用true或false,不使用引号。

集合
集合用中括号包括,集合元素之间用逗号分隔。
使用数字范围也可以表示一个数字集合,如1..5等同于集合[1, 2, 3, 4, 5];同样也可以用5..1来表示[5, 4, 3, 2, 1]。

Map对象
Map对象使用花括号包括,Map中的key-value对之间用冒号分隔,多组key-value对之间用逗号分隔。
注意:Map对象的key和value都是表达式,但key必须是字符串。

时间对象
root.put(“date1”, new Date());
${date1?string(“yyyy-MM-dd HH:mm:ss”)}

JAVABEAN的处理
Freemarker中对于javabean的处理跟EL表达式一致,类型可自动转化!非常方便!

3.2、输出变量值
FreeMarker的表达式输出变量时,这些变量可以是顶层变量,也可以是Map对象的变量,还可以是集合中的变量,并可以使用点(.)语法来访问Java对象的属性。

顶层变量
所谓顶层变量就是直接放在数据模型中的值。输出时直接用${variableName}即可。

输出集合元素
可 以根据集合元素的索引来输出集合元素,索引用中括号包括。如: 输出[“1”, “2”, “3”]这个名为number的集合,可以用 ${number[0]}来输出第一个数字。FreeMarker还支持用number[1..2]来表示原 集合的子集合[“2”, “3”]。

输出Map元素
对于JavaBean实例,FreeMarker一样把它看作属性为key,属性值为value的Map对象。
输出Map对象时,可以使用点语法或中括号语法,如下面的几种写法的效果是一样的:
book.author.name
book.author[“name”]
book[“author”].name
book[“author”][“name”]

使用点语法时,变量名字有和顶层变量一样的限制,但中括号语法没有任何限制。

3.3字符串操作
1. 字符串连接
字符串连接有两种语法:
(1)使用{..}或#{..}在字符串常量内插入表达式的值;
(2)直接使用连接运算符“+”连接字符串。
如,下面两种写法等效:{"Hello, {user}”}{“Hello, ” + user + “!”}

有一点需要注意: {..}只能用于文本部分作为插值输出,而不能用于比较等其他用途,如:
<#if{isBig}>Wow!

点击复制链接 与好友分享!回本站首页
上一篇:操作系统概念的理解
下一篇:hibernate配置c3p0注意
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训

版权所有: 红黑联盟--致力于做实用的IT技术学习网站