Spring Boot-视图技术FreeMarker

本文的核心内容:Spring Boot整合FreeMarker,FreeMarker的语法。


 

一:概述

设计思想:模板 + 数据 ---> 文本输出

Spring Boot-视图技术FreeMarker_第1张图片

 

二: SpringBoot整合FreeMarker

①:引入Maven依赖

        
        
            org.springframework.boot
            spring-boot-starter-freemarker
        

②:FreeMarker配置

#------FreeMarker配置Start----#
spring.freemarker.cache=false
spring.freemarker.enabled=true
#后缀
spring.freemarker.suffix=.ftl
#前缀
spring.freemarker.prefix=/

#------FreeMarker配置End----#

 ③:创建Controller跳转视图,并传递数据

@Controller
public class MyController {

    @RequestMapping("/index")
    public  ModelAndView getFreeMarker(){
        ModelAndView view=new ModelAndView();
        view.setViewName("index");
        view.addObject("name","zs");
        return  view;
    }
}

④:视图解析数据,并响应客户端  【index.ftl】  所有的模版文件放于/templates 目录下。




    freemark


Hello ${name} from resource freemark!

 

三:FreeMarker语法

 

①:Interpolation 插值 ${ key名 }

      //Controller传值  ModleAndView
        view.addObject("number",10);//数值
        view.addObject("name","zs");//字符串
        view.addObject("user",new User(1,"Libai"));//JavaBean
        view.addObject("ok",true);//Boolean
        view.addObject("date",new Date());//日期


     //.ftl页面取值
        <#-- 取数字 -->
        

${number}

<#-- 取字符串 -->

Hello ${name} from resource freemark!

<#-- 取JavaBean的属性 -->

${user.name}

<#-- 根据boolean值获取值/判断 -->

${ok?string('成功','失败')}

<#-- 取日期 ?后面可选date,time,datetime-->

${date?date}

 ②:FTL tags 标签<# 标签名>

<#list>

从List集合中取值。

    //Controller传值   list
        List list=new ArrayList<>();
        list.add("BJ");
        list.add("WH");
        list.add("HZ");
        view.addObject("citys",list);

    //.ftl取值
        <#list 集合名 as 别名>
             ${别名}
        

从Map中取值

    //Controller传值   Map
        Map map = new HashMap();
        map.put("BJ","北京");
        map.put("WH","武汉");
        view.addObject("citys",map);

    //.ftl取值
       <#list citys ? keys as city>
            ${city} ---> ${citys[city]} 

 

<#if>

<#if 条件>
 // true内容
 <#else>
 // false内容

 

<#include  >   //包含ftl页面或.html页面

<#include "TemplateFiles/example.ftl">

 

对于空值处理有下面两种方案:

${ key名!"默认值"}

<#if test??>
     值存在
  <#else>
     不存在

 

你可能感兴趣的:(Spring,Boot,Spring,Boot,笔记)