原来,我们公司在开发一套关于商品的系统,早先的开发人员编写的一个应用程序,有一个商品总览的页面,在此,成为页面1.jsp,这个1.jsp里,用静态include方法添加了1个2.jsp的页面,其中有一段是关于商品信息总览页面的分页的。代码段如下:
//上一页
if ('${page}' != '1' && '${page}' != '') {
$("#Tools17").toggleClass('Tools17_disable').toggleClass('Tools17');
$("#Tools17").on('click', function() {
searchItemByPageNo('${prePage}');
});
}
//下一页
if ('${page}' != '${total}') {
$("#Tools19").toggleClass('Tools19_disable').toggleClass('Tools19');
$("#Tools19").on('click', function() {
searchItemByPageNo('${nextPage}');
});
}
//最后一页
if ('${page}' != '${total}' && eval('${total}') > eval('${page}')) {
$("#Tools18").toggleClass('Tools18_disable').toggleClass('Tools18');
$("#Tools18").on('click', function() {
searchItemByPageNo('${total}');
});
}
//第一页
if ('${page}' != '1' && '${page}' != '') {
$("#Tools16").toggleClass('Tools16_disable').toggleClass('Tools16');
$("#Tools16").on('click', function() {
searchItemByPageNo('1');
});
}
请注意,这个${page}变量,我一直不知道这是引用哪个程序?
问题就在于,后来,我接手了继续根据用户需求开发的工作,我开发了另一个应用程序—商品退货,开发完成后,用户反映,使用我的程序没问题,只是,在退出我的程序,重新回到商品总览的页面的时候,却发现页面虽然显示出来了,只是,动态输入商品货号,原来显示出的信息,都不显示了。
昨天,我仔细地查找了错误,发现当点击完商品总览页面菜单以后,URL跳转到1.jsp,加载了2.jsp后,chrome浏览器F12报错,identifier报错,点击出错的行,跳转到了每个${page}处,这里显示出来这个变量引用了我编写的一个后台分页程序Page.java的地址,并且,连实时运行的SQL语句也暴露在里面。
无奈,以前的开发人员写的程序已经达成JAR包,无法修改,我只好修改自己的Page.java程序,改名为MyPage.java, 同时,把放入session的sessionKey从page,改成pagination.
然后,我启动程序,结果,当我点击商品总览菜单命令,后台依然报这个错误,只是原来${page}引用的路径从com.xxx.xx.Page@xxx 变成了com.xxx.xx.MyPage@xxx,
我现在想请教大家,究竟这个${page}引用的是什么?从哪里可以找到,为何它引用了另一个package里的程序?如果是重名冲突,我修改了我的类名,为何还是这样?
谢谢!