Add CSS and JS to Thymeleaf
1.简介
在本快速教程中,我们将学习如何在Thymeleaf模板中使用CSS和JavaScript。
首先,我们将讨论预期的文件夹结构,以便我们知道将文件放置在何处。在那之后,我们将看到从Thymeleaf模板访问那些文件所需的操作。
我们将从在页面上添加CSS样式开始,然后继续添加一些JavaScript功能。
2.设定
为了在我们的应用程序中使用Thymeleaf,让我们将Thymeleaf的Spring Boot Starter添加到我们的Maven配置中:
1 2 3 4 5 | <dependency> <groupId>org.springframework.boot</groupId> spring-boot-starter-thymeleaf</artifactId> <version>2.2.6.RELEASE</version> </dependency> |
3.基本示例
3.1。目录结构
现在提醒一下,Thymeleaf是一个模板库,可以轻松地与Spring Boot应用程序集成。默认情况下,Thymeleaf希望我们将这些模板放置在src / main / resources / templates文件夹中。我们可以创建子文件夹,因此在此示例中,我们将使用名为cssandjs的子文件夹。
对于CSS和JavaScript文件,默认目录为src / main / resources / static。让我们分别为我们的CSS和JS文件创建static / styles / cssandjs和static / js / cssandjs文件夹。
3.2。添加CSS
让我们在static / styles / cssandjs文件夹中创建一个名为main.css的简单CSS文件,并定义一些基本样式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | h2 { font-family: sans-serif; font-size: 1.5em; text-transform: uppercase; } strong { font-weight: 700; background-color: yellow; } p { font-family: sans-serif; } |
接下来,让我们在templates / cssandjs文件夹中创建一个名为styledPage.html的Thymeleaf模板以使用以下样式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> Add CSS and JS to Thymeleaf <link th:href="@{/styles/cssandjs/main.css}" rel="stylesheet" /> </head> <p> Carefully Styled Heading </p> <p><center>[wp_ad_camp_4]</center></p><p> This is text on which we want to apply very special styling. </p> </html> |
我们使用带有Thymeleaf特殊的th:href属性的链接标签加载样式表。如果使用了预期的目录结构,则只需指定src / main / resources / static下的路径。在这种情况下,就是/styles/cssandjs/main.css。 @ {/ styles / cssandjs / main.css}语法是Thymeleaf进行URL链接的方式。
如果运行我们的应用程序,我们将看到我们的样式已被应用:
3.3。使用JavaScript
接下来,我们将学习如何向Thymeleaf页面添加JavaScript文件。
首先,向src / main / resources / static / js / cssandjs / actions.js中的文件添加一些JavaScript:
1 2 3 | function showAlert() { alert("The button was clicked!"); } |
然后,我们跳回到Thymeleaf模板,并添加一个指向我们的JavaScript文件的标记:
1 | <script type="text/javascript" th:src="@{/js/cssandjs/actions.js}"> |
现在,我们从模板中调用方法:
1 | <button type="button" th:onclick="showAlert()">Show Alert</button> |
当我们运行应用程序并单击Show Alert按钮时,我们将看到警报窗口。
在总结之前,让我们通过学习如何在JavaScript中使用Spring控制器中的数据来稍微扩展一下这个示例。
让我们首先修改控制器以为页面提供名称:
1 2 3 4 5 | @GetMapping("/styled-page") public String getStyledPage(Model model) { model.addAttribute("name","Baeldung Reader"); return"cssandjs/styledPage"; } |
接下来,让我们向action.js文件中添加一个函数,以在警报中使用该名称:
1 2 3 | function showName(name) { alert("Here's the name:" + name); } |
最后,为了使用来自控制器的数据调用函数,我们需要使用脚本内联。因此,将名称值放在本地JavaScript变量中:
1 2 | <script th:inline="javascript"> var nameJs = /*[[${name}]]*/; |
通过这样做,我们创建了一个本地JavaScript变量,其中包含控件中的名称模型值,然后可以在页面其余部分的JavaScript中使用它。
至此,我们可以使用nameJs变量调用JavaScript函数了:
1 | <button type="button" th:onclick="showName(nameJs);">Show Name</button> |
4。结论
在这个简短的教程中,我们学习了如何将CSS样式和外部JavaScript功能应用于Thymeleaf页面。我们从推荐的目录结构开始,然后逐步使用Spring控制器类中提供的数据调用JavaScript。
与往常一样,该代码可在GitHub上获得。