jsp参数传递问题请教
我在页面一中做连接:web2.jsp?sort=delete
在页面中取得参数:
String sort = null;
sort = (String)request.getParameter("sort");
if(sort.equals("delete"))
{
执行语句;
}
报错:::
java.lang.NullPointerException
at _jsp._manage._finance_0add__jsp._jspService(manage/finance_add.jsp:34)
at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
at com.caucho.jsp.Page.pageservice(Page.java:570)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:159)
at com.caucho.server.webapp.WebAppFilterChain.doFilte
而
if(sort.=="delete")
{
执行语句;
}
却不能执行
请高手赐教
问题点数:20、回复次数:7Top
1 楼championmajian(小马||目前酒力:白的半斤,啤的3瓶)回复于 2006-03-02 23:14:31 得分 0
应该没有问题啊,仔细检查是不是文件名搞错了Top
2 楼killme2008(为了生态平衡,请保护蛤蟆)回复于 2006-03-02 23:14:44 得分 0
用equals是没错的
String sort = null;
sort = (String)request.getParameter("sort");
if(sort.equals("delete")&&sort!=null&&!sort.equals(""))
{
执行语句;
}
Top
3 楼hzyuqi(宇琦)回复于 2006-03-02 23:17:37 得分 0
文件是不会错的了Top
4 楼xiangbo520(充栋汗牛)回复于 2006-03-02 23:24:13 得分 0
绝对是其他地方的问题!Top
5 楼hzyuqi(宇琦)回复于 2006-03-02 23:31:08 得分 0
会是什么地方的问题呢
文件的名字上面我写的只是个例子,请高手赐教,再线等Top
6 楼doway(john)回复于 2006-03-03 00:53:29 得分 12
其实非常明显:manage/finance_add.jsp:34 这里甚至指出了行号。
如果是 (String)request.getParameter("sort") 或者 sort.equals("delete") 报出的空引用异常,这表明当时的请求参数中确实不存在名字是 sort 的参数。
当 sort 为 null 时,sort.equals 是一定会发生空引用异常的,而 sort=="delete" 一定返回 false,但不会发生异常。
在其他一些情况下,有一种防守型编程方式:"delete".equals(sort),这种方式可以避免异常。但在目前这种情况下,不应该试图避免,因为那只会将问题隐藏得更加难以察觉。
楼主在 IE 的地址栏中手工敲入 finance_add.jsp?sort=delete 或者是其他的相应参数试一下。
从文件名和参数看起来很不对劲,楼主可能是做了转发或者是重定向到 finance_add.jsp 时忘记提供相应的参数了。
Top
7 楼zxjoe(joe)回复于 2006-03-03 09:28:33 得分 8
String sort = null;
sort = (String)request.getParameter("sort");
if(sort.equals("delete")){
执行语句;
}
改成
String sort = "";
sort = (String)request.getParameter("sort");
if(sort!= null && sort.equals("delete")){
执行语句;
}
就Ok了Top




