简易配置freemarker和基本语法

简易配置freemarker

FreeMarker 中文官方参考手册http://freemarker.foofun.cn/

FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)
在这里插入图片描述

创建freemarker模板

在这里插入图片描述
点击+号新建一个files,生成一个默认的文件

在这里插入图片描述

项目结构

在这里插入图片描述

步骤

1.创建maven项目导入对应的jar包

2.创建目录templaters,并创建freemarket模板文件index.ftl,编写yml文件

3.创建一个运行FreeMarker模版引擎的 FreeMarkerApplication.java文件

4.运行main方法

导入jar包

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency> 

application.yml

server:
  port: 9091

#springboot 整合 freemarket
spring:
  freemarker:
    template-loader-path: /templaters/
    suffix: .ftl

FreemarkerApplication

package com.t49.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class FreemarkerApplication {
    public static void main(String[] args) {
        SpringApplication.run(FreemarkerApplication.class,args);
    }
}

代码测试

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {


    // 直接进入页面
    @RequestMapping("/{path}.html")
    public String path(@PathVariable String path){


        return path;//返回值:与jsp相同- 只返回视图名称
    }

}

freemark基本语法

HelloController.java

package com.t49.springboot.controller;

import com.t49.springboot.pojo.User;
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 javax.servlet.http.HttpSession;
import java.util.*;

@Controller
public class HelloController {


    // 直接进入页面
    @RequestMapping("/{path}.html")
    public String path(@PathVariable String path, Model model){

        //普通取值
        model.addAttribute("name","zhangsan");

        //传递空值
        model.addAttribute("sex",null);

        //传递boolean值
        model.addAttribute("bo",1>2);

        //封装对象
        User user = new User();
        user.setUserName("张三");
        user.setPassword("123456");
        model.addAttribute("user",user);

        //时间类型
        model.addAttribute("date1","2021/12/12");

        //HTML转义
        model.addAttribute("aa","a");

        //list集合取值
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        model.addAttribute("list1",list);

        //对Map集合取值
        Map<String,User> map = new HashMap();
        map.put("aa",new User(1,"zhangsan","123"));
        map.put("bb",new User(2,"lisi","123"));
        map.put("cc",new User(3,"wangwu","123"));

        model.addAttribute("map",map);


//        switch语句
        model.addAttribute("sw1",2);

        return path;//返回值:与jsp相同- 只返回视图名称
    }

}

inde.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>$Title$</title>
</head>
<body>
<#--普通取值-->
${name}<br>

<#--对null或者不存在的对象取值,为空时设置默认值-->
${sex! "男"}<br>

<#--传递boolean值-->
${bo?string("true","false")}<br>

<#--封装对象-->
${user.userName}    ${user.password}<br>

<#--日期类型-->
<input value="${date1}" pattern="yyyy-MM-dd"/><br>
<#--${date1?string("yyyy-MM-dd")}-->

<#--HTML转义-->
${aa?html}<br>

<#--定义变量-->
<#assign num = 10/>
值= ${num * 10}<br>

<#--list集合取值-->
<#list list1 as item>
 ${item}
</#list><br>

<#--对Map集合取值-->
<#list map?keys as key>
 ${key}: ${map[key]}
</#list><br>

<#--if-else判断-->
<#assign num1 = 10/>
<#assign num2 = 100/>
<#if num1 &gt; num2>
  123
 <#else>
  456
</#if><br>

<#--if-else-if级联判断-->
<#if num1 &gt; num2>
  123
 <#elseif num1 == num2>
  456
 <#elseif num1 &lt; num2>
  789
 <#else>
  098
</#if>

<br/>
<br/>
<#switch sw1>
    <#case 1>
        case 1
        <#break >
    <#case 2>
        case 2
        <#break >
    <#default >
        default 1
</#switch>
<#--<#switch sw1>-->
<#-- <#case 1>-->
    <#-- 123-->
    <#-- <#break>-->
<#-- <#case 2>-->
<#--    456-->
<#--    <#break>-->
<#-- <#default>-->
<#--    789-->
<#--</#switch>-->

</body>
</html>
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值