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/

 

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