这里我们整合模板引擎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/