Check if the request parameter equals a string in Java
Solution 1
Since String
is an object, not a primitive, the ==
would only compare them by reference, not by the object's internal representation. You need to compare them by equals()
instead.
if("page1".equals(request.getParameter("page")))
// do something
else if("page2".equals(request.getParameter("page")))
// do something else
(note, this style is done so to prevent potential NullPointerException
on for example request.getParameter("page").equals("page1")
when the parameter returns null
)
Related questions:
Unrelated to the problem, the JSP is not the best place for this job. Consider a Servlet.
Solution 2
You are using the wrong equals. Try this:
if(request.getParameter("page") != null) {
if(request.getParameter("page").equals("page1")) {
// do stuff
} else if(request.getParameter("page").equals("page2")) {
// do other stuff
}
}
== compares the object references to see if they are equal, whereas .equals checks to see if the values of those object references are equal.
steve
Updated on June 04, 2022Comments
-
steve about 2 years
I want to do this in java
if(request.getParameter("page") == "page1") // page1 else if(request.getParameter("page") == "page2") // page2
For someone new to java, why doesn't the above code work, and what is the best way to do what I want to do above?
-
jamesmortensen over 13 yearsGood point on the difference between the 2 styles. I never thought about it like that.