一头扎进springboot之使用Freemarker模板引擎渲染web视图

在springboot的官方文档中是不建议在项目中使用jsp这样的技术的,取而代之的是freemark、velocity这样的模板引擎。

首先和大家来说一下这个模板引擎的概念,这里特指用于web开发的模板引擎。模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档

那么我们的freemark也是有着自己凸显的优点在,才会这么受欢迎

1.freemark不支持写java代码,实现严格的mvc分离

2.性能非常不错

3.对jsp标签支持良好

4.内置大量常用功能,使用非常方便

5.宏定义(类似jsp标签)非常方便

6.使用表达式语言

然后现在来看怎么在springboot中整合freemark模板

1》.在pom.xml文件中引入freemark的依赖包

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
2》在src/main/resource/创建一个templates文件夹,后缀为*.ftl,里面新建一个index.ftl的文件,内容如下

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>
</head>
<body>
	  ${name}
</body> 
</html>

3》Controller层写入一个方法,内容如下

@Controller
public class IndexController {

	@RequestMapping("/index")
	public String index(ModelMap map){//ModelMap转发值的作用
		map.addAttribute("name","喵喵");
		return "index";
	}
}

这样我们在访问这个方法时,就能够获取到值了



简单的freemark的整合就是这样的,然后我们在来看看freemark里获取list的数据是怎么获取的

先去IndexController造一些list的数据

@Controller
public class IndexController {

	@RequestMapping("/index")
	public String index(ModelMap map){//ModelMap转发值的作用
		map.addAttribute("name","喵喵");
		map.put("sex", 1);
		List<String> userList = new ArrayList<String>();
		userList.add("张三");
		userList.add("李四");
		userList.add("王五");
		map.addAttribute("userList",userList);
		return "index";
	}
}

然后在index.ftl利用list接受遍历即可,这里的写法和jsp还是有很大的区别的

<#if sex==1>
            男
      <#elseif sex==2>
            女
     <#else>
        其他      
	  
	  </#if>
	  
	 <#list userlist as user>
	   ${user}
	 </#list>

然后我们在访问方法时,浏览器就会显示我们获取到的数据啦


如果想要了解freemark更多的内容,可以私信哦

猜你喜欢

转载自blog.csdn.net/qiuqiu_qiuqiu123/article/details/78491849