我有以下几点:
<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)}]
我也试过
<% for (int i=Math.max(1,${page}-5); i<Math.min(${page}+5,${pages}); i++) { %>但是Eclipse无法解析它。
发布于 2018-11-07 04:45:42
尝试使用pageNo变量名而不是page。变量名page是问题所在。例如,以下工作:
<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页面中可用的隐式对象之一。
https://stackoverflow.com/questions/53180533
复制相似问题