JSP分页中报错 java.lang.NumberFormatException: For input string: "undefined"
从异常里面看了下,找到了这两段代码:
if (request.getParameter("curpage")!=null)
cur_page = new Integer(request.getParameter("curpage")).intValue();
out.print("cur_page"+cur_page);
if (request.getParameter("size")!=null)
pagesize = new Integer(request.getParameter("size")).intValue();
out.print("pagesize"+pagesize);
显示的是这两句有误:
cur_page = new Integer(request.getParameter("curpage")).intValue();
pagesize = new Integer(request.getParameter("size")).intValue();
很头疼始终不知道为什么这两段错了
这是对应的javascript 代码
<SCRIPT language=JavaScript>
function sizechange(size) {
document.frm.size.value = size.value;
document.frm.action = "";
document.frm.target = "";
document.frm.submit();
}
function gopage(page) {
var pagevalue;
if (typeof(page) == 'number')
pagevalue=page;
else
pagevalue=page.value;
document.frm.curpage.value = pagevalue;
document.frm.action = "";
document.frm.target = "";
document.frm.submit();
</SCRIPT>
请高手 大侠们指点啊!!
答案:看你的异常 就知道是 字符转换数字出错了
指名 undefined 无法转换为int 类型
undefined 是一个特殊值,通常用于指示变量尚未赋值。对未定义值的引用返回特殊值 undefined
看情况应该是 你用ajax提交了吧 js 变量传到后面,未赋值或未定义 返回undefined 当然转换出错了
关键要看
curpage和size两个参数 传的时候有没有值了或未定义了
你还是检查看看 jsp页面表单里面这连个变量 有没有赋值
其他:你先打印一下下面两个值看看结果是什么,能不能围成整形?
request.getParameter("curpage")
request.getParameter("size") request.getParameter("curpage")
request.getParameter("size")
这两句代码得到的是 String 类型的 要 parseInt转换成整形
另外,好像有request.getParameterInt("");这种用法 request获取出来的是String类型的,要用Integer.parseInt转换成int 你的jsp页面第31行后面的把String类型的转换成int类型的时候出现了异常!
原因是theMax.substring(10)这个函数取子字符串时取出来的是空字符串即 ""所以在类型转换的时候出错!
解决方案:
将theMax打出到后台看其值是什么.即在28行与29行之间加上
System.out.println(theMax);
如果为空或者其长度是否大于等于11(我猜测肯定小于11或则根本就是空)
如果长度小于11或则为空再从theMax的值方面着手来排除你的错误!
这个可能是后面有空格吧。
cur_page = new Integer(request.getParameter("curpage").trim()).intValue();
pagesize = new Integer(request.getParameter("size").trim()).intValue();
这样试试
上一个:jsp如下代码,请帮忙看一下,调用add方法alert不会弹出来,貌似读取不Name。应该怎么写,麻烦详细一点。
下一个:在jsp页面中格式化字符串类型的时间到指定的类型。