编写JSP网页时:
[size=large][size=x-large][size=x-small]request.getParameter("PageNo")这条语句中的“PageNo"是通过网址传递的(例:www.baidu.com?PageNo=3)
但是现在PageNo不存在。也就是说网址中没有这个参数(例:www.baidu.com)这个时候就会报错!请问这个有解决办法吗?
在正文中有一条if语句 // [b]if(request.getParameter("PageNo")==null)[/b] 而这条语句是必须有的。
谢谢……[/size][/size][/size]
[quote] if(request.getParameter("PageNo")==null) [/quote]
就这句话来说,这里是不会所报错的。
只有你在对空值进行强制转化的时候才会抛出异常。如:
首先你要判断request.getParameter("PageNo")在你后台到底是什么数据,
是""还是null
建议你统一处理,打个比方
[code="java"]String PageNo = ((request.getparameter("PageNo")!=null)?request.getParameter("PageNo")+""):"");[/code]
上面的代码虽然很乱,但是是统一将前台传递的内容就转化为""了,不会存在null的情况,那么在后面调用的时候就不会出现nullPointerException.
我尝试的没有问题,不会报错。
我的代码[code="html"]<%if(request.getParameter("PageNo")==null){out.print("PageNo");}else{out.print(request.getParameter("PageNo"));} %>[/code]
当是http://localhost:8080/struts2/show.jsp这样的url测试时,没有错误,输出PageNo 。当是http://localhost:8080/struts2/show.jsp?PageNo=5 输出5,没有问题
[color=blue][b]
楼主的问题是有没有更优雅的解决方案。对吧?
这个不好解决,似乎必须加if判断。
有一点我要提醒楼主,如果pageNo=-100怎么办?
我的建议是,用异常处理。无论是null错误,还是数据导致后续的错误,在catch后都统一处理,比如按pageNo=1来处理。
仅供参考![/b]
[/color]
[code="java"]String PageNo = ((request.getparameter("PageNo")!=null)?request.getParameter("PageNo")+""):""); [/code]
多说无益! 就这么干了
建议 在用java代码写一个公共类 在里面写一个方法来判断传递的值是否为你想要的类型 并且还可以判断输入的是否合法 而且代码还可以从用 只要传参就好了