防止Thymeleaf阻止跑

时间:2017-12-01 16:54:00

标签: thymeleaf

以下代码适用于负责分页的网站等分类广告。现在,如果城市页面没有广告,我会收到以下错误。

There was an unexpected error (type=Internal Server Error, status=500).
Exception evaluating SpringEL expression: "#numbers.sequence(pager.startPage, pager.endPage)" (city:74)

如果语句是Thymeleaf,是否存在块样式,这样如果该城市不存在广告,我可以阻止从pagation运行的任何内容?

相关代码

<div class="row">
    <div th:if="${ads.totalPages != 1}"
        class="form-group col-md-11 pagination-centered">
        <ul class="pagination">
            <li th:class="${ads.number == 0} ? disabled"><a
                class="pageLink" th:href="1">&laquo;</a></li>
            <li th:class="${ads.number == 0} ? disabled"><a
                class="pageLink" th:href="${ads.number}">&larr;</a></li>
            <li
                th:class="${ads.number == (page - 1)} ? 'active pointer-disabled'"
                th:each="page : ${#numbers.sequence(pager.startPage, pager.endPage)}">
                <a class="pageLink"
                th:href="@{${'/' + cityForPage + '/{page}'}(page=${page})}"
                th:text="${page}"></a>
            </li>
            <li th:class="${ads.number + 1 == ads.totalPages} ? disabled">
                <a class="pageLink"
                th:href="@{${'/' + cityForPage + '/{page}'}(page=${ads.number + 2})}">&rarr;</a>
            </li>
            <li th:class="${ads.number + 1 == ads.totalPages} ? disabled">
                <a class="pageLink"
                th:href="@{${'/' + cityForPage + '/{page}'}(page=${ads.totalPages})}">&raquo;</a>
            </li>
        </ul>
    </div>
</div>

2 个答案:

答案 0 :(得分:0)

您在寻找<th:block />吗?你可以在html的一部分中加上一个:如果在其中。

答案 1 :(得分:0)

如果您在发布的代码块之外的城市上进行迭代,例如,您的Collection对象上有类似ads属性city的内容,则可以执行此操作:

  <div th:each="city : ${cities}" th:remove="tag">
    <div class="row" th:if="${!#lists.isEmpty(city.ads)}">
        <div th:if="${ads.totalPages != 1}"
            class="form-group col-md-11 pagination-centered">
        <!-- the rest of your HTML... -->
        </div>
    </div>
  </div>

或者,如果您正在拨打服务,则只需将city.ads和外部循环替换为相关的呼叫即可。无论如何,您可能正在检查某些集合或列表是否为空。

除此之外:我将page变量重命名为pageNumberpageNo,以便为下一个人更加清晰。