簡易配置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 > num2>
123
<#else>
456
</#if><br>
<#--if-else-if級聯判斷-->
<#if num1 > num2>
123
<#elseif num1 == num2>
456
<#elseif num1 < 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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/265905.html
標籤:java
上一篇:物件賦值和克隆
