Spring Boot 入门 - 基础篇(6)- 页面模板

阅读更多
Spring Boot支持很多模板引擎,但嵌入式容器JSP有限制,2010年后Velocity停止更新,所以这两个不建议使用。

(1)Thymeleaf
pom.xml

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


src/main/java/com/rensanning/springboot/PageController.java
@Controller
public class PageController {
	
    @RequestMapping("/testTH")
    public String testTH(ModelMap map) {
        map.addAttribute("msg", "Hello, rensanning! @Thymeleaf");
        return "test_th";  
    }
    
}


src/main/resources/templates/test_th.html


 
  
  Thymeleaf Sample
 
 
  



引用
2017-02-09 14:59:16.586  INFO 6596 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/testTH]}" onto public java.lang.String
com.rensanning.springboot.PageController.testTH(org.springframework.ui.ModelMap)


访问 http://localhost:8080/testTH
Spring Boot 入门 - 基础篇(6)- 页面模板_第1张图片

Thymeleaf的默认设置
application.properties
引用
spring.thymeleaf.prefix=classpath:/templates/ # Prefix that gets prepended to view names when building a URL.
spring.thymeleaf.suffix=.html # Suffix that gets appended to view names when building a URL.
spring.thymeleaf.mode=HTML5 # Template mode to be applied to templates. See also StandardTemplateModeHandlers.
spring.thymeleaf.encoding=UTF-8 # Template encoding.
spring.thymeleaf.content-type=text/html # Content-Type value.


LEGACYHTML5
spring.thymeleaf.mode=LEGACYHTML5
模板将不会按xhtml输出,html错误将被忽略。比如
等这些没有闭合的标签,以默认mode是无法访问的。不过需要依赖nekohtml:

  net.sourceforge.nekohtml
  nekohtml
  1.9.15


Thymeleaf以标签的属性形式出现,以下是常用的属性:
引用
1)th:text 标签内显示数据

test


2)th:href 链接的URL
3)th:if、th:unless 简单判断

error


4)th:each 循环输出 *注意不是而是循环输出

    ...

5)th:switch、th:case 分支判断

   

ZERO


   

ONE


   

NUM



6)数据访问模式:链接(@{...})、变量(${...})、国际化文字(#{...})、选择表达式(*{...})


模板重用
src/main/resources/templates/base.html



    
    thymeleaf base


    
    
header

Contents is here!

footer


src/main/resources/templates/contents.html



    Contents


    
ID NAME


(2)FreeMarker

pom.xml

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


src/main/java/com/rensanning/springboot/PageController.java
@Controller
public class PageController {
	
    @RequestMapping("/testFM")
    public String testFM(ModelMap map) {
        map.addAttribute("msg", "Hello, rensanning! @FreeMarker");
        return "test_fm";  
    }
    
}


src/main/resources/templates/test_fm.ftl


 
  
  FreeMarker Sample
 
 
  

${msg}



引用
2017-02-09 14:59:16.585  INFO 6596 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/testFM]}" onto public java.lang.String
com.rensanning.springboot.PageController.testFM(org.springframework.ui.ModelMap)


访问 http://localhost:8080/testFM
Spring Boot 入门 - 基础篇(6)- 页面模板_第2张图片
  • Spring Boot 入门 - 基础篇(6)- 页面模板_第3张图片
  • 大小: 30.9 KB
  • Spring Boot 入门 - 基础篇(6)- 页面模板_第4张图片
  • 大小: 29.3 KB
  • 查看图片附件

你可能感兴趣的:(Spring Boot 入门 - 基础篇(6)- 页面模板)