如何在jsp页面中使用if条件比较两个字符串?

时间:2014-04-07 12:14:55

标签: java string jsp equals

Jsp代码:

<% 
String usermailid=(String)session.getAttribute("Username");
System.out.println("value of session==="+usermailid.equals("null"));
String empty=null;

if(usermailid.equals("null")) {   

%>                          



<% } 

else
{%>


<%}%>

输出:

Apr 7, 2014 5:39:31 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
    at org.apache.jsp.election_005fresults_jsp._jspService(election_005fresults_jsp.java:437)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Unknown Source)

在上面的代码中,我想比较两个字符串。但是当我想要它们时,当两个值都为空并且显示值为false时,我得到空指针异常? 那么有谁能告诉我比较两个字符串的确切方法???

5 个答案:

答案 0 :(得分:2)

使用简单的检查

if (usermailid != null)

答案 1 :(得分:2)

if(usermailid!=null)

尝试一下它会起作用。

 String x = null; 
 String x = "null";

两者都不同

答案 2 :(得分:1)

  

如何在jsp页面中使用if条件比较两个字符串?

答案

不要在JSP 中编写scriptlet <% %>,因为scriptlet不应该在JSP中使用十多年。学习JSP ELJSTL,并使用servlet获取Java代码。 How to avoid Java Code in JSP-Files?

所以,我正在使用EL syantax发布解决方案。

${!empty Username}

此处Username直接从会话范围引用。 empty是运算符,它会检查null以及空。

您可以使用<c:if><c:when>进行条件检查。

<c:if test="${!empty Username}">
      //Username is not null here
</c:if>

有用的链接

答案 3 :(得分:0)

在这里,您将获得usermailid null,并且您尝试与String“null”进行比较。 see null is nothing(null)但是“null”是一个以null为文本的String。

答案 4 :(得分:0)

首先删除此行:

System.out.println("value of session==="+usermailid.equals("null"));
你可以写下这个:

if(null == usermailid) {
  // email id is null
} else {
  // proceed ur logic 
}