使用 FreeMarker 作为页面展示
FreeMarker是一种比较简单的网页展示技术,是网页模板和数据模型的结合体。这种结合模式的好处就是,分离了网页界面设计人员和编程人员的工作,让他们各司其职。
一、build.gradle 中增加 FreeMarker 依赖:
compile "org.springframework.boot:spring-boot-starter-freemarker"
二、src/main/resources 中创建 application.properties 文件,内容如下:
spring.freemarker.cache=false spring.freemarker.charset=UTF-8 spring.freemarker.check-template-location=true spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=true spring.freemarker.expose-session-attributes=true spring.freemarker.request-context-attribute=request
或在application.yml中增加配置:
spring: datasource: url: jdbc:mysql://172.17.7.XXX:3306/Exfresh_XXX username: ygtest password: ygtest freemarker: allow-request-override: false cache: false check-template-location: true charset: UTF-8 content-type: text/html; charset=utf-8 expose-request-attributes: false expose-session-attributes: false expose-spring-macro-helpers: false suffix: .ftl template-loader-path: classpath:/templates/
三、src/main/resources 创建目录 templates, 并在此目录创建 hello.ftl,内容如下:
<!DOCTYPE html> <html lang="en"> <body> Date: ${time?date} <br> Time: ${time?time} <br> Message: ${message} </body> </html>
四、修改 HelloController.java:
package cn.zss.zsdemo.web; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import java.util.Date; @Controller public class HelloController { @Value("${application.message:Hello World}") private String message = "Hello World"; @RequestMapping("/hello") public String welcome(ModelMap model){ model.put("time",new Date()); model.put("message",this.message); return "hello"; } }
使之前 @ResponseBody 输出改成 freemarker 页面输出,并从 application.properties 取值填充页面。
五、启动应用,浏览器打开 http://localhost:8080/hello 查看页面展示: