我想在java中执行此操作
if(request.getParameter("page") == "page1")
// page1
else if(request.getParameter("page") == "page2")
// page2
对于刚接触java的人,为什么上面的代码不起作用,以及在上面做我想做的最好的方法是什么?
答案 0 :(得分:10)
由于String
是一个对象而不是一个原语,==
只能通过引用来比较它们,而不是通过对象的内部表示来比较它们。您需要通过equals()
来比较它们。
if("page1".equals(request.getParameter("page")))
// do something
else if("page2".equals(request.getParameter("page")))
// do something else
(请注意,当参数返回NullPointerException
时
与此问题无关,JSP不是这项工作的最佳选择。考虑Servlet。
答案 1 :(得分:1)
你使用错误的等号。试试这个:
if(request.getParameter("page") != null) {
if(request.getParameter("page").equals("page1")) {
// do stuff
} else if(request.getParameter("page").equals("page2")) {
// do other stuff
}
}
==比较对象引用以查看它们是否相等,而.equals检查这些对象引用的值是否相等。