首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用JSP编写这个JSTLfor循环呢?无法找到明确的方法:类java.lang.Math.min(Long,Integer)

如何用JSP编写这个JSTLfor循环呢?无法找到明确的方法:类java.lang.Math.min(Long,Integer)
EN

Stack Overflow用户
提问于 2018-11-06 21:45:45
回答 1查看 548关注 0票数 0

我有以下几点:

代码语言:javascript
复制
    <c:forEach var="i" begin="${Math.max(1,page-5)}" end="${Math.min(page+5,pages)}">
        <a class="btn btn-primary" href="?page=${i}">${i+1}</a>
    </c:forEach>

它给出了错误

javax.el.MethodNotFoundException:无法找到明确的方法:类java.lang.Math.min(java.lang.Long,java.lang.Integer)

如果我尝试手动将它们转换为(int),则会产生不同的错误!

org.apache.jasper.JasperException: /WEB/jsp/line.jsp(行: 528,列: 2) ${Math.min(Int)(page+5),(Int)页)}包含无效表达式:[javax.el.ELException:未能解析表达式${Math.min(Int)(page+5),(int)pages)}]

我也试过

代码语言:javascript
复制
<% for (int i=Math.max(1,${page}-5); i<Math.min(${page}+5,${pages}); i++) { %>

但是Eclipse无法解析它。

EN

回答 1

Stack Overflow用户

发布于 2018-11-07 04:45:42

尝试使用pageNo变量名而不是page。变量名page是问题所在。例如,以下工作:

代码语言:javascript
复制
<c:set var="pageNo" value="3"/>
<c:set var="pageCount" value="6"/>
<c:forEach var="i" begin="${Math.max(1, pageNo-5)}" end="${Math.min(pageNo+5, pageCount)}">
        <a class="btn btn-primary" href="?pageNo=${i}">${i+1}</a>
</c:forEach>

输出将每个数字显示为链接(带有<a/>标记):2 3 4 5 6 7

编辑:JSP2.0规范中的注释:“变量名称page的类型为java.lang.Object,描述为:处理当前请求页面范围的该页面实现类的实例”。它是JSP页面中可用的隐式对象之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53180533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档