Springboot第六課——整合模板引擎

這裏我們整合模板引擎FreeMarker

1.引入依賴

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

2.配置模板引擎

在resource下創建application.yml文件,配置如下:

#FreeMarker 配置
spring:
  freemarker:
    suffix: .html  #後綴名,默認是.ftl
    content-type: text/html
    enabled: true
    cache: false #緩存 false
    template-loader-path:
    - classpath:/templates/    #模板加載路徑
    charset: UTF-8
    request-context-attribute: request #請求,類似jsp中的內置對象

3. 在resource下創建templates文件,用來存放我們的html文件

templates下創建form.html 及 resultpage.html 分別如下:

form.html 主要內容

<form action="/submiturl">
 <input name = "name" type = "text" value = "xyp"></input>
 <input name = "passWord" type = "text" value = "123"></input>
 <input type = "submit"></input>
 </form>

 resultpage.html主要內容:

<body>
顯示對象:
 ${user.name}
 ${user.passWord}
</br>

遍歷List:</br>
<#list list as item>
${item.name}</br>
</#list>

</br>
遍歷Map:</br>
<#list map?keys as k>
${k}:${map[k]}</br>
</#list>

</br>
自定義變量:</br>
<#assign num = 17><#--自定義變量-->
<#if num gt 20 >    <#--判斷條件 -->
     20        <#--判斷成立輸出的內容-->
<#elseif num == 18>
  成年了
<#elseif num lt 18>
未成年
<#else>
        你成年了
</#if>
</br>
時間類型取值:</br>
${time?string("yyyy-MM-dd")}
</body>

4.創建controller

@Controller
public class TemplateController {
	private static final String RESULT_PAGE = "resultpage";
	private static final String FORM_PAGE = "form";

	@RequestMapping("/toForm")
	public String toForm() {
		return FORM_PAGE;
	}

	@RequestMapping("/submiturl")
	public ModelAndView toPage(User user) {
		ModelAndView mv = new ModelAndView();
		mv.setViewName(RESULT_PAGE);// 返回的頁面

		// 對象
		mv.addObject("user", user);

		// list
		User u1 = new User();
		u1.setName("xh");
		u1.setPassWord("222");
		List<User> list = new ArrayList<>();
		list.add(user);
		list.add(u1);
		mv.addObject("list", list);

		// map
		Map<String, String> map = new HashMap<>();
		map.put("中國", "北京");
		map.put("中國", "貴州");

		mv.addObject("map", map);

		// time
		Date time = new Date();
		mv.addObject("time", time);
		return mv;
	}
}

5.驗證

a.進入form頁面:

 

b.提交結果頁面如下:

 

可以看到參數成功傳到後臺,後臺的數據成功顯示到前端,值得注意的是form表單的屬性要和後端的對象屬性相對應。

更多FreeMarker用法請參考:http://freemarker.foofun.cn/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章