`
rensanning
  • 浏览: 3547947 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38135
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607261
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682256
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89318
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401805
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69685
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91692
社区版块
存档分类
最新评论

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

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

(1)Thymeleaf
pom.xml
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


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
<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8"/>
  <title>Thymeleaf Sample</title>
 </head>
 <body>
  <h1 th:text="${msg}"></h1>
 </body>
</html>


引用
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


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错误将被忽略。比如<br>、<link rel="" href="">、<meta charset="UTF-8">等这些没有闭合的标签,以默认mode是无法访问的。不过需要依赖nekohtml:
<dependency>
  <groupId>net.sourceforge.nekohtml</groupId>
  <artifactId>nekohtml</artifactId>
  <version>1.9.15</version>
</dependency>


Thymeleaf以标签的属性形式出现,以下是常用的属性:
引用
1)th:text 标签内显示数据 <p th:text="${text}">test</p>
2)th:href 链接的URL <link th:href="@{bootstrap/css/bootstrap.min.css}" rel="stylesheet" />
3)th:if、th:unless 简单判断 <p th:if="${errorMsg} != null">error</p>
4)th:each 循环输出 *注意不是<tbody>而是<tr>循环输出
<tbody th:each="list : ${beans}">
    <tr>...</tr>
</tbody>

5)th:switch、th:case 分支判断
<td th:switch="${num}">
    <p th:case="0">ZERO</p>
    <p th:case="1">ONE</p>
    <p th:case="*">NUM</p>
</td>

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


模板重用
src/main/resources/templates/base.html
<!DOCTYPE html>
<html xmlns           ="http://www.w3.org/1999/xhtml"
      xmlns:th        ="http://www.thymeleaf.org"
      xmlns:layout    ="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
    <meta http-equiv="Content-Type"    content="text/html; charset=UTF-8">
    <title>thymeleaf base</title>
</head>
<body>
    <!-- header -->
    <header>
        <div align="center" >header</div>
        <hr />
    </header>

    <!-- contents -->
    <div layout:fragment="content">Contents is here!</div>

    <!-- footer -->
    <footer>
        <hr />
        <div align="center">footer</div>
    </footer>
</body>
</html>


src/main/resources/templates/contents.html
<!DOCTYPE html>
<html xmlns           ="http://www.w3.org/1999/xhtml"
      xmlns:th        ="http://www.thymeleaf.org"
      xmlns:layout    ="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="base">
<head>
    <title>Contents</title>
</head>
<body>
    <div layout:fragment="content">
        <table class="table">
            <thead class="sunflower">
                <tr>
                    <td>ID</td>
                    <td>NAME</td>
                </tr>
            </thead>
            <tbody th:each="list : ${beans}">
                <tr>
                    <td class="text-str" th:text="${list.id}"></td>
                    <td class="text-str" th:text="${list.name}"></td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>


(2)FreeMarker

pom.xml
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>


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
<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8"/>
  <title>FreeMarker Sample</title>
 </head>
 <body>
  <h1>${msg}</h1>
 </body>
</html>


引用
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
  • 大小: 30.9 KB
  • 大小: 29.3 KB
分享到:
评论

相关推荐

    spring-boot-study-base.zip

    总的来说,"spring-boot-study-base.zip"是一个很好的Spring Boot入门教程,它涵盖了从基础到实践的关键知识点。通过学习和实践,你可以快速掌握Spring Boot的精髓,从而在实际开发中提高效率,构建出更加健壮和灵活...

    spring boot入门篇demo+ppt

    在"spring boot入门篇demo+ppt"中,我们可以期待学习以下核心知识点: 1. **Spring Boot基础知识**:了解Spring Boot的基本概念,包括其设计目标、主要特性以及与其他Spring框架的关系。 2. **起步依赖(Starter)...

    Spring boot(一): 入门篇.rar_springboot

    通过阅读 "Spring boot(一): 入门篇.pdf" 和 "Spring boot(二):web综合开发.pdf",你可以深入了解 Spring Boot 的基本概念、快速上手指南以及如何进行 Web 应用的综合开发。这些资料将引导你从初识 Spring Boot 到...

    01-SpringBoot基础篇

    以上是 Spring Boot 基础篇的知识点,包括 Spring Boot 简介、快速上手 Spring Boot、Spring Boot 入门案例、parent starter 引导类、内嵌 Tomcat 基础配置、配置属性配置、yaml 文件语法规则、yaml 数据读取、整合...

    springCloud入门基本代码(基础篇)

    在本压缩包“SpringCloud入门基本代码(基础篇)”中,我们将会探索Spring Cloud的基础概念和实践。Spring Cloud是一个微服务开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、...

    spring-framework-4.2.1.RELEASE官方完整包加官方文档

    通过阅读官方文档,开发者可以了解Spring的完整生态系统,包括Spring Boot、Spring Data、Spring Security等周边项目,进一步提升开发效率。 总结来说,Spring Framework 4.2.1.RELEASE不仅是一个强大的Java应用...

    尚硅谷Spring Boot课堂笔记.rar

    总之,《尚硅谷Spring Boot课堂笔记》是一份全面而实用的学习材料,不仅适合初学者入门,也对有一定基础的开发者有很高的参考价值。通过深入学习和实践,开发者能够充分利用Spring Boot的优势,高效地开发和管理Java...

    Spring Boot 3天课程从入门到结界(1.56G)

    ---Day01SpringBoot基础重温篇.mp4 ---Day02SpringBoot核心原理篇.mp4 ---Day03SpringBoot完美收官篇.mp4 优秀作业名单 ---Day01优秀作业名单(排名不分先后).txt ---Day02优秀作业名单(排名不分先后).txt 源码和软件...

    spring-boot-and-all-all-all

    《Spring Boot全方位解析:从入门到精通》 Spring Boot,作为Java生态系统中的明星框架,以其“开箱即用”的特性,极大地简化了Spring应用的初始搭建以及开发过程。本篇文章将深入探讨Spring Boot的核心概念、关键...

    springboot基础篇视频21-50

    总的来说,这些视频教程构成了一个全面的Spring Boot入门学习路径,从基础的框架集成到实际业务场景的应用,旨在帮助开发者快速掌握Spring Boot开发的技能,并提升在后端Java项目中的实践能力。通过学习这些内容,...

    Spring MVC_快速入门分析篇

    **Spring MVC 快速入门分析** Spring MVC 是一个基于 Java 的模型-视图-控制器(MVC)架构,是 Spring 框架的一部分,用于构建Web应用程序。它提供了丰富的功能,帮助开发者处理HTTP请求、数据绑定、视图渲染等任务...

    初学spring项目(入门解读和新建项目)

    总之,"初学Spring项目(入门解读和新建项目)"这篇博文将引导你了解Spring框架的基本概念,学习如何使用Spring Initializr创建项目,并通过实际操作来熟悉Spring Boot的启动流程、MVC架构、数据库操作以及自动配置等...

    初识java,用springBoot学习java

    2. **Spring Boot入门** - **自动配置**:Spring Boot的核心特性之一,根据项目依赖自动配置相关组件。 - **起步依赖**:通过引入特定的起步依赖(Starter POMs),可以快速引入所需功能模块,如spring-boot-...

    spring入门案例所需工具

    本篇文章将通过"spring入门案例所需工具"的介绍,帮助初学者快速掌握Spring的基本概念和使用方法。 首先,让我们了解一下Spring的核心组件和主要功能。Spring框架主要包括以下几个部分: 1. **依赖注入...

    Springboot开发学习路径目录大纲.zip

    一、基础篇 1. **Java 基础**:首先,熟悉 Java 语言是必要的,包括语法、面向对象编程概念、集合框架等。 2. **Spring 概念**:了解 Spring 框架的核心概念,如依赖注入(DI)、面向切面编程(AOP)以及 Spring MVC...

    128元尚硅谷Java视频教程_SpringBoot视频教程(上)核心技术篇

    02、尚硅谷_SpringBoot_入门-Spring Boot简介 03、尚硅谷_SpringBoot_入门-微服务简介 04、尚硅谷_SpringBoot_入门-环境准备 05、尚硅谷_SpringBoot_入门-springboot-helloworld 06、尚硅谷_SpringBoot_入门-...

    Springboot+Vue.zip

    1. **Spring Boot基础** Spring Boot简化了Spring框架的配置,通过默认配置和自动配置机制,使得开发过程更加高效。其核心特性包括内嵌式Web服务器(如Tomcat)、健康检查、Actuator监控、Spring Data JPA等。在本...

    simple-start-demo.rar

    例如,引入`spring-boot-starter-web`后,SpringBoot会自动配置DispatcherServlet、Tomcat、Jackson等。 七、运行与测试 在命令行中,我们可以使用`mvn spring-boot:run`命令启动项目。然后,通过访问`...

    SpringBoot(入门篇)资料.rar

    这个"SpringBoot(入门篇)资料.rar"压缩包包含了几个关键的学习资源,帮助初学者快速掌握SpringBoot的基础知识。 1. **Conditional注解**: Conditional注解是Spring Boot的核心特性之一,用于在特定条件下加载或...

Global site tag (gtag.js) - Google Analytics