SpringBoot 整合模板引擎

SpringBoot 整合模板引擎

一 SpringBoot整合freemarker

1.引入freemarker依赖

>
    >org.springframework.boot>
    >spring-boot-starter-freemarker>
>

二 SpringBoot整合thymeleaf

1.引入thymeleaf依赖

        >
            >org.springframework.boot>
            >spring-boot-starter-thymeleaf>
        >

Thymeleaf 支持渲染HTML,因此通常我们使用的页面模板也就是HTML,同时它需要遵循一定的规则:

  1. 比如在spring boot项目中,通常我们将Thymeleaf渲染的页面放在 resources/templates目录下,这样Thymeleaf会默认识别。

  2. 若想要在HTML页面中使用Thymeleaf,需要修改

  3. 在spring boot项目中 resources/static目录下的文件可通过浏览器直接访问,而 resources/templates下的HTML不能通过浏览器直接访问,而需要 SpringMvc这样的框架映射到那个页面地址。

2.修改 application.properties

#thymeleaf静态资源配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.suffix=.html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false

3.Demo

在 main/java目录下新建 RouterController.java

	@RequestMapping("/index")
    public String index(ModelMap map) {
        map.addAttribute("name", "thymeleaf-imooc");
        return "index";
    }

这个 return"index"中 index是 templates根目录下的 index.html,如果是 templates/common/main.html页面,就应该 return"/common/main.html"

在 main/resources/templates目录下新建 index.html

4.常用表达式

变量表达式

变量表达式级即OGNL表达式或Spring EL表达式(在Spring术语中也叫做model attributes),例如:

${user.username}

1.修改 RouterController.java

	@RequestMapping("/index")
    public String index(ModelMap map) {
        map.addAttribute("name", "thymeleaf-imooc");
        return "thymeleaf/index";
    }

2.修改 index.html

>
Thymeleaf模板引擎

:text="${name}">hello world~~~~~~~> >

选择*号表达式

如果 model.addAttribute()的是一个对象而不是字符串,就可以用 *表达式分别获取 model对象中的元素,如:

`*{...}`表达式:
:object="${user}">
:text="*{username}">>
:text="*{password}">>
>

如果页面需要不在 th:object包裹下获取对象中的元素,可以使用如下:

:text="${user.username}">>

URL表达式

例如:


                    
                    

你可能感兴趣的:(SpringBoot)