【发布时间】:2011-06-05 21:39:11
【问题描述】:
我想用java做这个
if(request.getParameter("page") == "page1")
// page1
else if(request.getParameter("page") == "page2")
// page2
对于刚接触 java 的人来说,为什么上面的代码不起作用,做上面我想做的最好的方法是什么?
【问题讨论】:
标签: java request query-string
我想用java做这个
if(request.getParameter("page") == "page1")
// page1
else if(request.getParameter("page") == "page2")
// page2
对于刚接触 java 的人来说,为什么上面的代码不起作用,做上面我想做的最好的方法是什么?
【问题讨论】:
标签: java request query-string
由于String 是一个对象,而不是原始对象,== 只会通过引用而不是对象的内部表示来比较它们。您需要通过equals() 来比较它们。
if("page1".equals(request.getParameter("page")))
// do something
else if("page2".equals(request.getParameter("page")))
// do something else
(注意,这样做是为了防止NullPointerException 在参数返回request.getParameter("page").equals("page1") 时出现request.getParameter("page").equals("page1"))
与问题无关,JSP 不是这个工作的最佳位置。考虑Servlet。
【讨论】:
您使用了错误的等号。试试这个:
if(request.getParameter("page") != null) {
if(request.getParameter("page").equals("page1")) {
// do stuff
} else if(request.getParameter("page").equals("page2")) {
// do other stuff
}
}
== 比较对象引用以查看它们是否相等,而 .equals 则检查这些对象引用的值是否相等。
【讨论】: