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

这里我们整合模板引擎FreeMarker

1.引入依赖


	org.springframework.boot
	spring-boot-starter-freemarker

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 主要内容

 resultpage.html主要内容:


显示对象:
 ${user.name}
 ${user.passWord}

遍历List:
<#list list as item> ${item.name}

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

自定义变量:
<#assign num = 17><#--自定义变量--> <#if num gt 20 > <#--判断条件 --> 20 <#--判断成立输出的内容--> <#elseif num == 18> 成年了 <#elseif num lt 18> 未成年 <#else> 你成年了
时间类型取值:
${time?string("yyyy-MM-dd")}

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 list = new ArrayList<>();
		list.add(user);
		list.add(u1);
		mv.addObject("list", list);

		// map
		Map 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页面:

 Springboot第六课——整合模板引擎_第1张图片

b.提交结果页面如下:

 Springboot第六课——整合模板引擎_第2张图片

可以看到参数成功传到后台,后台的数据成功显示到前端,值得注意的是form表单的属性要和后端的对象属性相对应。

更多FreeMarker用法请参考:http://freemarker.foofun.cn/

 

你可能感兴趣的:(javaWeb)