JSTL GT не возвращает правильное значение - PullRequest
0 голосов
/ 01 марта 2012

У меня проблема с тем, что некоторые JSTL не оценивают 'gt', как ожидалось, какой-то код:

<c:choose>
<c:when test="${param.totalPages > pageLinkCount}">

JSP никогда не отображает содержимое этого блока, а всегда отображает содержимое блока.Что-то в тесте не удалось.

Я попытался найти решение здесь для похожей проблемы , где решение включало добавление объявления, чтобы сообщить движку JSP / JSTL, что переменные являются Longs (онидля меня тоже) ...

<%@ attribute name="currentPage" required="true" type="java.lang.Long" %>

... но я обнаружил, что ошибка:

org.apache.jasper.JasperException: /WEB-INF/jsp/includes/pagination.jsp(4,13) &lt;%@ attribute directive can only be used in a tag file
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:132)

Тест в JSP включает в себя, как это:

<jsp:include page="../includes/pagination.jsp" >
    <jsp:param value="${pages}" name="totalPages"/> 
    ....other params

Некоторые тестовые значения выводятся в html:

param.TotalPages: 171

TotalPages: 171 (локальная переменная JSTL Я пытался присвоить значение param.totalPages)

Текущий: 64

Начальная страница: 1

Конечная страница: 171

PageLinkCount: 3

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

Я изменился с

<jsp:include

стиль включает в себя

<@include
Директива

, вместо этого изменил параметры на c: set var, и теперь это похоже на работу.

Так как я предпочитаю использовать стиль jsp: include для включения страниц, кажется, что параметры обрабатываются не совсем так, как я ожидал, поэтому сейчас я буду придерживаться стиля директивы @ include.

0 голосов
/ 02 марта 2012

Этот сценарий ошибки обычно является опечаткой, строчными или заглавными буквами или аналогичными:

  • param.totalPages против param.TotalPages
  • pageLinkCount против PageLinkCount

Проверьте это, поскольку имена переменных JSTL не чувствительны к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...