SpringBoot官方不推薦使用jsp,因為jsp不好發揮SpringBoot的特性。官方推薦使用模板引擎代替jsp,現在很多公司都使用FreeMarker來作為SpringBoot的視圖。 SpringBoot對動態頁面的支持很好,為多種模板引擎提供了預設配置,常用的有: Thymeleaf F ...
SpringBoot官方不推薦使用jsp,因為jsp不好發揮SpringBoot的特性。官方推薦使用模板引擎代替jsp,現在很多公司都使用FreeMarker來作為SpringBoot的視圖。
SpringBoot對動態頁面的支持很好,為多種模板引擎提供了預設配置,常用的有:
- Thymeleaf
- FreeMarker
- Velocity
- Groovy
SpringBoot集成FreeMarker
(1)在pom.xml中添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
(2)在springboot的配置文件application.proeprties中配置freeamarker
#啟用freemark。預設為false——不使用freemarker。
spring.freemarker.enabled=true
#指定freemarker模板文件的尾碼
spring.freemarker.suffix=.ftl
這一步是必須的,但很多教程上都沒寫。
(3)在controller中轉發到freemarker頁面,並傳遞數據
@Controller public class UserController { @RequestMapping("/user") public String handler(Model model){ model.addAttribute("username", "chy"); return "user/user_info"; } }
@RestController用來傳回json數據,一般用來寫與前端交互的介面。普通的controller用@Controller就行了。
(4)在reosurces下新建文件夾templates,templates下新建.ftl文件(freemark文件),使用controller傳來的數據。
springboot預設模板存放路徑是resources\templates,由於user有多個視圖,我們在templates下新建文件夾user來存放。
user下新建html文件user_info.html,Shif+F6重命名為.ftl文件。
<body> <#--取數據--> ${username} </body>