這裏我們整合模板引擎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/