Spring 引导:在多个 html 页面上管理 API
Spring Boot: managing APIs over multiple html pages
我正在使用 Spring 引导和 HTML 页面构建 Web 应用程序。
在多个 HTML 页面中,我使用相同的导航栏:
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a href="/home" class="nav-link">Home</a>
</li>
<li class="nav-item">
<a href="/user/showAllProducts" class="nav-link">All Products</a>
</li>
现在我不得不更改 API 中显示所有产品 (/user/showAllProducts) 的 URL,我不得不更改大约 10 HTML 页。
有没有一种简单的方法可以在一个配置文件(application.properties?)中管理所有 API URL 并直接将它们注入 HTML 页面?
将显示所有产品的列表项只是导航栏中许多其他链接的一个示例。
非常感谢您的帮助
执行此操作的最佳方法是在局部上下文中。如果您想使用 thymeleaf 或 jsp 之类的东西,您可以在每个 HTML 或 JSP 文件中将导航栏作为一行插入,然后随时更改特定的部分文件(导航栏,header、页脚等)它将被插入到网络应用程序中显示的任何页面中。
这是 Spring 文档中的示例。
您可以使用 ${@environment.getProperty('key')}
在 application.properties
中阅读 属性
并使用 th:fragment
为您的页面创建可重复使用的片段。
首先,创建一个nav.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head></head>
<body>
<ul th:fragment="nav" class="navbar-nav mr-auto">
<li class="nav-item active">
<a th:href="${@environment.getProperty('your.home.property.here')}" class="nav-link">Home</a>
</li>
<li class="nav-item">
<a th:href="${@environment.getProperty('your.products.property.here')}" class="nav-link">All Products</a>
</li>
</body>
</html>
并在您的网页中使用 th:replace
。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Hello Thymeleaf</title>
</head>
<body>
<div th:replace="nav :: nav"></div>
</body>
</html>
我正在使用 Spring 引导和 HTML 页面构建 Web 应用程序。
在多个 HTML 页面中,我使用相同的导航栏:
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a href="/home" class="nav-link">Home</a>
</li>
<li class="nav-item">
<a href="/user/showAllProducts" class="nav-link">All Products</a>
</li>
现在我不得不更改 API 中显示所有产品 (/user/showAllProducts) 的 URL,我不得不更改大约 10 HTML 页。
有没有一种简单的方法可以在一个配置文件(application.properties?)中管理所有 API URL 并直接将它们注入 HTML 页面? 将显示所有产品的列表项只是导航栏中许多其他链接的一个示例。
非常感谢您的帮助
执行此操作的最佳方法是在局部上下文中。如果您想使用 thymeleaf 或 jsp 之类的东西,您可以在每个 HTML 或 JSP 文件中将导航栏作为一行插入,然后随时更改特定的部分文件(导航栏,header、页脚等)它将被插入到网络应用程序中显示的任何页面中。
这是 Spring 文档中的示例。
您可以使用 ${@environment.getProperty('key')}
在 application.properties
中阅读 属性
并使用 th:fragment
为您的页面创建可重复使用的片段。
首先,创建一个nav.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head></head>
<body>
<ul th:fragment="nav" class="navbar-nav mr-auto">
<li class="nav-item active">
<a th:href="${@environment.getProperty('your.home.property.here')}" class="nav-link">Home</a>
</li>
<li class="nav-item">
<a th:href="${@environment.getProperty('your.products.property.here')}" class="nav-link">All Products</a>
</li>
</body>
</html>
并在您的网页中使用 th:replace
。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Hello Thymeleaf</title>
</head>
<body>
<div th:replace="nav :: nav"></div>
</body>
</html>