1.创建一个maven web项目
2.添加所需要的依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> </dependencies>
3.写一个接口,返回到src/main/resources/templates/test.ftl页面(freemarker默认模板后缀为ftl,默认路径是src/main/resources/templates,可以在application.properties中更改配置)
@RestController @RequestMapping("/test") public class Test { @SuppressWarnings("all") @RequestMapping("/fun1") public ModelAndView fun(HttpServletRequest request) { ModelAndView mv = new ModelAndView("/test"); mv.addObject("name","vhukze"); mv.addObject("sex",1); ArrayList list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); mv.addObject("list", list); return mv; } }
配置信息
## Freemarker 配置 ##模版存放路径(默认为 classpath:/templates/) spring.freemarker.template-loader-path=classpath:/templates/ ##是否生成缓存,生成环境建议开启(默认为true) spring.freemarker.cache=false ##编码 spring.freemarker.charset=UTF-8 spring.freemarker.check-template-location=true ##content-type类型(默认为test/html) spring.freemarker.content-type=text/html ## 设定所有request的属性在merge到模板的时候,是否要都添加到model中(默认为false) spring.freemarker.expose-request-attributes=false ##设定所有HttpSession的属性在merge到模板的时候,是否要都添加到model中.(默认为false) spring.freemarker.expose-session-attributes=false ##RequestContext属性的名称(默认为-) spring.freemarker.request-context-attribute=request ##模板后缀(默认为.ftl) spring.freemarker.suffix=.html
4.书写test.ftl文件
<html> <body> <h2>Hello World!</h2> ${name} <#if sex=1> 女 <#else> 男 </#if> <#list list as num> ${num} </#list> </body> </html>
跟EL表达式一样的取值 ${}
判断语句 <#if> <#elseif > <#else> </#if>
遍历集合 <#list (域中的变量名) as (取出值的临时变量名)> </#list>
这个就相当于java中的forEach语句
for (String num : list) { System.out.println(num); }
访问接口方法映射路径