gpt4 book ai didi

java - 如果 Spring MVC 中包含特定的 thymeleaf 段,如何从数据库加载数据

转载 作者:行者123 更新时间:2023-12-05 07:43:47 26 4
gpt4 key购买 nike

我使用 Spring 和 Thymeleaf。一些页面中包含用于侧边栏菜单的 thymeleaf 段。

我的问题:

有没有办法注册如果段包含在主题中然后从数据库加载相关数据并将其添加到模型中? (我在 php Laravel 5 中使用了类似的东西)

最佳答案

从数据库中获取数据并通过 Controller 的方法将其添加到模型中。然后在前端,只需检查该值是否为空。如果该值不为空,则显示此片段。例如:您在 Controller 中设置一个值,如下所示:

model.addAttribute("errors",this.DAOLayer.getItemsToShowOnAParticularFragment()); 

然后在前端:

<c:if test="${errors != null}"> 
<div class="alert>
<table class="table">
<c:forEach items="${errors}" var="error">
<tr><td><c:out value="${error.defaultMessage}" /></td></tr>
</c:forEach>
</table>
</div>
</c:if>

我在我的 JSP 上这样做。当错误为空时,整个 <div>没有出现。那<div>仅在错误不为空时显示。

您可以设置另一个 if 语句,如果错误为 null,则显示它。

<c:if test="${errors == null}">
<!-- Since nothing came from DB, show this info in this fragment -->

进一步说明:

假设您已经预留了一部分前端来显示来自数据库的这些消息。我将以 Bootstrap 为例。说圈起来的<div>是您为其分配的区域。

enter image description here

产生这种布局的前端代码是这样的(它包括导入 Bootstrap 库的所有导入语句):

<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="jumbotron text-center">
<h1>My First Bootstrap Page</h1>
<p>Resize this responsive page to see the effect!</p>
</div>

<div class="container">
<div class="row">
<div class="col-sm-4">
<h3>Column 1</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris...</p>
</div>
<div class="col-sm-4">
<h3>Column 2</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris...</p>
</div>
<!-- Start of circled div -->
<div class="col-sm-4">
<h3>Column 3</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris...</p>
</div>
<!-- End of circled columns -->
</div>
</div>

</body>
</html>

现在里面最后一个<div class="col-sm-4"> .... , 你会把 <c:if test="${errors != null}"> JSTL 代码来测试向用户显示什么内容。我希望您知道如何在前端使用和导入 JSTL 标签。如果没有,那么你可以用谷歌搜索它,你会找到很多答案。就是这样。

关于java - 如果 Spring MVC 中包含特定的 thymeleaf 段,如何从数据库加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com