jsp参数传递问题请教

hzyuqi 2006-03-02 11:08:57
我在页面一中做连接: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")
{
执行语句;
}
却不能执行

请高手赐教
...全文
106 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
doway 2006-03-03
其实非常明显: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 时忘记提供相应的参数了。
回复
zxjoe 2006-03-03
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了
回复
hzyuqi 2006-03-02
会是什么地方的问题呢
文件的名字上面我写的只是个例子,请高手赐教,再线等
回复
xiangbo520 2006-03-02
绝对是其他地方的问题!
回复
hzyuqi 2006-03-02
文件是不会错的了
回复
killme2008 2006-03-02
用equals是没错的

String sort = null;
sort = (String)request.getParameter("sort");
if(sort.equals("delete")&&sort!=null&&!sort.equals(""))
{
执行语句;
}
回复
福贵 2006-03-02
应该没有问题啊,仔细检查是不是文件名搞错了
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-02 11:08
社区公告
暂无公告