gpt4 book ai didi

java - 在 thymeleaf 中编写 Java 代码

转载 作者:行者123 更新时间:2023-12-01 18:13:04 25 4
gpt4 key购买 nike

简而言之

我试图在 thymleaf 中创建一个用于分页的标签。

<小时/>

详细

我已经在 jsp 中提供了一个示例。但是我被困在中间。我不知道如何在 thymleaf 中编写此代码。

我用谷歌搜索了一下,但结果非常困惑。

jsp 示例:

<%@tag description="Extended input tag to allow for sophisticated errors" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@tag import="net.megalytics.util.Href" %>

<%@attribute name="currentPage" required="true" type="java.lang.Integer" %>
<%@attribute name="totalPages" required="true" type="java.lang.Integer" %>
<%@attribute name="totalItems" required="true" type="java.lang.Long" %>
<%
if (totalPages > 1) {
String currentUrl = request.getAttribute("javax.servlet.forward.request_uri").toString();
String queryString = "";
if (request.getQueryString() != null)
queryString = request.getQueryString();
Href newUrl = new Href(currentUrl + "?" + queryString);
newUrl.addParameter("page", String.valueOf(currentPage));
String url = "";
Integer totCount =0;
%>
<div class="pull-right">
<ul class="pagination">
<c:choose>
<c:when test="<%=currentPage == 0%>">
<li class="disabled"><a href="#">First</a></li>
</c:when>
<c:otherwise>
<li class="">
<%
newUrl.removeParameter("page");
newUrl.addParameter("page", "0");
url = newUrl.toString();
%>
<a href="<%=url%>">First</a>
</li>
</c:otherwise>
</c:choose>
<c:forEach var="count" step="1" begin="1" end="<%= totalPages %>">
<c:choose>
<c:when test="${(currentPage == count-1)}">
<li class="disabled"><a href="#">${count}</a></li>
</c:when>
<c:otherwise>
<li>
<%
newUrl.removeParameter("page");
newUrl.addParameter("page", String.valueOf(totCount));
url = newUrl.toString();
%>
<a href="<%=url%>">${count}</a>
</li>
</c:otherwise>
</c:choose>
<%
totCount++;
%>
</c:forEach>
<c:choose>
<c:when test="<%=currentPage == (totalPages-1) %>">
<li class="disabled"><a href="#">Last</a></li>
</c:when>
<c:otherwise>
<li class="">
<%
newUrl.removeParameter("page");
newUrl.addParameter("page", String.valueOf(totalPages - 1));
url = newUrl.toString();
%>
<a href="<%=url%>">Last</a>
</li>
</c:otherwise>
</c:choose>
</ul>
</div>
<%
}
%>

有人可以帮助我吗?我被困住了...

最佳答案

Thymeleaf 或任何框架都鼓励您在 View 中编写逻辑。这是糟糕的编码习惯。

您可以执行以下操作。

使用以下逻辑创建一个 bean 方法

@Bean("urlUtil")
class UrlUtil {
String doSomthing() {
newUrl.removeParameter("page");
newUrl.addParameter("page", "0");
return newUrl.toString();
}
}

访问 thymeleaf 布局内的 bean

<a th:href="@{__${@urlUtil.doSomthing()}__}">First</a>

引用http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html#the-springstandard-dialect

关于java - 在 thymeleaf 中编写 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31398993/

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