Spring boot + Thymeleaf 在自定义片段中显示数据库记录
Spring boot + Thymeleaf show database records in custom fragments
我有数据库记录,我想以某种方式显示在页面上。出于这个原因,我创建了一个 thymeleaf 片段,它应该用作我数据库中所有记录的模板。现在我不确定如何让每个片段(代表数据库记录)彼此相邻打印。此外,我想实现这样的目标:
我当前的实现将所有获取的记录显示在网页上完全相同的位置,这会创建类似于 "stack" 的内容,并且仅显示最后一条记录。我当前的实现如下所示:
总而言之,我想在 Android 开发中实现类似 CardView 的功能。我看过很多 thymeleaf 教程,但它们似乎都是关于在表格中组织数据,这不是我的目标。目前我不确定图一中的目标功能是否只能用 thymeleaf 来实现。
我希望有人能给我一些提示或建议,告诉我如何才能达到预期的结果。我应该看看一些 JS 框架吗?或者这可以用百里香来实现?
到目前为止,我尝试实现此功能已生成以下代码。
<div th:fragment="officer">
<div class="officerWrapper" th:block th:each="officer : ${officers}">
<div class="officerLeft">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRTw8mKnjVErhmhl5S_aUZfvf86vwZOMJBqbUqM-guT-kv6K4xu&usqp=CAU"
alt="user" width="100" height="150">
</div>
<div class="right">
<p>
Name :
<td th:text="${officer.firstName}">
</p>
<p>
Surname :
<td th:text="${officer.lastName}">
</p>
<p>
Mobile:
<td th:text="${officer.mobile}">
</p>
</br>
<p>Статут: Наличен</p>
</br>
<button class="button button1" name="editOfficer">Edit</button>
</div>
</div>
</div>
然后 css 去..
*{
margin: 0;
padding: 0;
box-sizing: border-box;
list-style: none;
font-family: 'Josefin Sans', sans-serif;
}
.officerWrapper{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
width: 350px;
height: 150px;
display: flex;
box-shadow: 0 10px 20px 0 rgba(69,90,100,.08);
}
.officerWrapper .officerLeft{
width: 65%;
background: #38584A;
padding: ;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
text-align: center;
color: #fff;
}
.officerWrapper .officerLeft img{
border-radius: 0px;
margin-bottom: 0px;
width:100%;
height:100%;
}
.officerWrapper .right{
background:#38584A;
width:100%;
padding: 10px 10px 10px 10px;
color:#fff;
font-weight: bold;
}
.button1 {
border: 2px solid #4CAF50;
}
你绝对可以在没有 js 而只用 html 和 css 的情况下实现这一点,因为这是一个样式挑战,所以你只需要正确的 css.
你所有卡片现在堆叠的原因是你将每张卡片放置在 space(屏幕中间)中完全相同的点,使用这些行:
.officerWrapper {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
... }
您可以通过使用 flexbox 或 css 网格来实现您想要的效果。两者都不比另一个好,因此您必须看看哪种方法适合您。我会留下一些参考资料供您查看。
参考资料
我有数据库记录,我想以某种方式显示在页面上。出于这个原因,我创建了一个 thymeleaf 片段,它应该用作我数据库中所有记录的模板。现在我不确定如何让每个片段(代表数据库记录)彼此相邻打印。此外,我想实现这样的目标:
我当前的实现将所有获取的记录显示在网页上完全相同的位置,这会创建类似于 "stack" 的内容,并且仅显示最后一条记录。我当前的实现如下所示:
总而言之,我想在 Android 开发中实现类似 CardView 的功能。我看过很多 thymeleaf 教程,但它们似乎都是关于在表格中组织数据,这不是我的目标。目前我不确定图一中的目标功能是否只能用 thymeleaf 来实现。
我希望有人能给我一些提示或建议,告诉我如何才能达到预期的结果。我应该看看一些 JS 框架吗?或者这可以用百里香来实现?
到目前为止,我尝试实现此功能已生成以下代码。
<div th:fragment="officer">
<div class="officerWrapper" th:block th:each="officer : ${officers}">
<div class="officerLeft">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRTw8mKnjVErhmhl5S_aUZfvf86vwZOMJBqbUqM-guT-kv6K4xu&usqp=CAU"
alt="user" width="100" height="150">
</div>
<div class="right">
<p>
Name :
<td th:text="${officer.firstName}">
</p>
<p>
Surname :
<td th:text="${officer.lastName}">
</p>
<p>
Mobile:
<td th:text="${officer.mobile}">
</p>
</br>
<p>Статут: Наличен</p>
</br>
<button class="button button1" name="editOfficer">Edit</button>
</div>
</div>
</div>
然后 css 去..
*{
margin: 0;
padding: 0;
box-sizing: border-box;
list-style: none;
font-family: 'Josefin Sans', sans-serif;
}
.officerWrapper{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
width: 350px;
height: 150px;
display: flex;
box-shadow: 0 10px 20px 0 rgba(69,90,100,.08);
}
.officerWrapper .officerLeft{
width: 65%;
background: #38584A;
padding: ;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
text-align: center;
color: #fff;
}
.officerWrapper .officerLeft img{
border-radius: 0px;
margin-bottom: 0px;
width:100%;
height:100%;
}
.officerWrapper .right{
background:#38584A;
width:100%;
padding: 10px 10px 10px 10px;
color:#fff;
font-weight: bold;
}
.button1 {
border: 2px solid #4CAF50;
}
你绝对可以在没有 js 而只用 html 和 css 的情况下实现这一点,因为这是一个样式挑战,所以你只需要正确的 css.
你所有卡片现在堆叠的原因是你将每张卡片放置在 space(屏幕中间)中完全相同的点,使用这些行:
.officerWrapper {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
... }
您可以通过使用 flexbox 或 css 网格来实现您想要的效果。两者都不比另一个好,因此您必须看看哪种方法适合您。我会留下一些参考资料供您查看。
参考资料