el表达式获取对象属性值 返回值类型

实现 数字页码时 遇到的一个问题。

后端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>&nbsp;"
19         }else{
20             a.innerHTML="<a href='Goods.do?method=selectAll&category="+category+"&page="+i+"'>"+i+"</a>&nbsp;";    
21         }
22         pageNumDiv.appendChild(a);
23     }    
24     
25 }

另参考:js string 转 int 注意的问题小结