JSTL gt未返回正确的值

  • 本文关键字:返回 JSTL jsp jstl
  • 更新时间 :
  • 英文 :


我遇到了一些JSTL没有按预期评估"gt"的问题,有些代码:

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

JSP从不呈现when块的内容,而是始终呈现块内容。考试有点不及格。

我尝试了在这里找到的一个类似问题的解决方案,该解决方案涉及添加一个声明来告诉JSP/JSTL引擎vars是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 var我尝试分配param.TotalPages的值)

当前:64

首页:1

EndPage:171

PageLinkCount:3

此错误场景通常是打字错误、小写与大写或类似情况:

  • param.totalPagesparam.totalPages
  • pageLinkCount与pageLinkCount

请验证这一点,因为JSTL变量名不区分大小写。

我从更改了

<jsp:include

样式包括在中

<@include

指令,将params改为c:\set-var,现在它似乎可以工作了。

因此,尽管我更喜欢使用jsp:include样式来包含页面,但似乎参数的处理并不像我预期的那样,所以我现在将坚持使用@directive样式includes。

相关内容

  • 没有找到相关文章