我试图了解如何使用Thymeleaf,我有这样的结构:
我有一个PROC SQL;
CREATE TABLE WORK.MALE_POP_SQL00 AS
SELECT countyname AS CountyName, age_grp AS AgeGroup, SUM(pop00) AS Pop_00
FROM WORK.INTERCENSAL_M
GROUP BY countyname, age_grp
ORDER BY countyname, age_grp;
QUIT;
就像最常见的网页一样,我把它包含在一般default.html
,css
等等。我用{{1}代替页脚和导航栏。我使用此页面作为所有其他页面的基线。
我的问题是:如何将此页面用于所有其他页面?
例如,如果我有2个页面,页面 A 和 B ,并且它们都需要引导程序,应用程序的CSS等等,我不会# 39;要写代码以包含它们两次,但只需要一次。所以要做到这一点,我想如果我想在另一种情况下显示 A 和 B ,我必须将页面 A 放在default.html中。 / p>
至少,我是这样使用JSP完成的。
我该怎么办?是否有可能使用Thymeleaf?
我试图像这样做,但是id不起作用
default.html中
bootstrap
答案 0 :(得分:1)
完全有可能!
我们有一些步骤与Thymeleaf一起做:
<强>配置:强>
1 - 将百万美元布局方言纳入您的项目:
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
<version>2.1.2</version>
</dependency>
2 - 我不知道你的webConfig是怎么回事,但是对于Spring,我们必须将这个配置添加到模板引擎:
@Bean
public TemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setEnableSpringELCompiler(true);
//your templateResolver
engine.setTemplateResolver(templateResolver());
//here it is!
engine.addDialect(new LayoutDialect());
return engine;
}
默认html:
<!DOCTYPE html>
<html lang="pt-BR"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
<!-- Necessary to thymeleaf layout dialect-->
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<link rel="stylesheet" type="text/css" th:href="@{/layout/stylesheets/vendors/bootstrap.css}" />
</head>
<body>
<header>your Heder here</header>
<!--Here what you want, it gonna find the other html that contains "maincode"-->
<section layout:fragment="maincode"></section>
<footer>yourFooter</footer>
<script th:src="@{/javascript/vendors/jquery-2.2.4.min.js}"></script>
<script th:src="@{/layout/javascripts/bootstrap.min.js}"></script>
<th:block layout:fragment="javascript-extra"></th:block>
</body>
</html>
其他html:
<!DOCTYPE html>
<html lang="pt" xmlns="http://w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
<!--Tell who is the default html-->
layout:decorate="layout/defaultHtml">
<body>
<section layout:fragment="maincode">
bla bla bla
</section>
</body>
</html>
有问题,请问!