我有这个 JSP EL 表达式,它使用 >= 比较器。在我的开发环境中,我得到了您期望的结果,即 2 >= 188 是错误的。但是,在我的登台和生产服务器上,显然 2 >= 188 是正确的。
这是代码:
</ul>
<p>curPage: ${param.curPage}<br/>
totalPages: ${param.totalPages}<br/>
totalPages - curPage: ${param.totalPages - param.curPage}<br/>
curPage gt totalPages: ${param.curPage >= param.totalPages}<br/>
<p>
在我的开发环境中,我得到如下输出:
curPage: 2
totalPages: 68
totalPages - curPage: 66
curPage gt totalPages: false
在舞台上:
curPage: 2
totalPages: 181
totalPages - curPage: 179
curPage gt totalPages: true
我的开发环境运行的是 Tomcat 7.0.29,staging 运行的是 7.0.30。代码库是相同的。
上面的代码在一个文件“pagination.jsp”中(我知道,它应该是一个.tag),它包含在另一个jsp中,如下所示:
<jsp:include page="/widgets/pagination.jsp">
<jsp:param name="totalPages" value="${actionBean.jbp.totalPages}" />
<jsp:param name="baseUrl" value="${baseUrl}" />
<jsp:param name="curPage" value="${not empty param.page?param.page:0}" />
</jsp:include>
“jbp.totalPages”定义为:
私人最终 int 总页数;
而“param.page”显然是一个页面参数。
我想这里可能存在类型转换问题,在参数和 int 之间,但这并不能解释为什么它在一台机器上工作而不是在另一台机器上工作。
另外,我认为 JSP EL 进行了自动类型转换。
任何想法将不胜感激。