一頭扎進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更多的內容,可以私信哦


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com