实现 数字页码时 遇到的一个问题。
后端servlet 在request.setAttribute("page",page); page 为pagebean的实例对象,pagebean类中有int 格式属性 pageNum;
前端 js 中 el表达式获取到的pageNum 默认为 String 类型。导致后面运算出错。
如下代码中,第9行若写为:
var n = pageCount;
那么第15行 for 循环中 page1+n 将得到 字符串拼接结果。
js 中 类型不严格区分害死人呀......
el表达式返回值类型没有找到总结的博客~ el表达式还有很多要学~
1 //<!-- 页码第二种实现 主要过程 --> 2 window.onload = function(){ 3 var pageNumDiv = document.getElementById("pageNum"); 4 var category='${requestScope.category}'; 5 var page ='${requestScope.page.page}'; 6 var pageCount='${requestScope.page.pageNum}'; 7 var page1 =1; 8 9 var n = Number(pageCount); 10 if(pageCount>6){ 11 page1 =page<4?1:(page>pageCount-4?pageCount-6:page-3); 12 n=7; 13 } 14 15 for(i=page1;i<page1+n;i++){ 16 var a = document.createElement("a"); 17 if(i==page){ 18 a.innerHTML="<span >"+i+"</span> " 19 }else{ 20 a.innerHTML="<a href='Goods.do?method=selectAll&category="+category+"&page="+i+"'>"+i+"</a> "; 21 } 22 pageNumDiv.appendChild(a); 23 } 24 25 }