比较Java中的字符串参数时出现NullPointerException
我使用servlet作为重定向页面的控制器。因此,我有以下链接:比较Java中的字符串参数时出现NullPointerException,java,servlets,nullpointerexception,Java,Servlets,Nullpointerexception,我使用servlet作为重定向页面的控制器。因此,我有以下链接: <li><a href="actionController?key=contact">Contact</a></li> <li><a href="actionController?key=support">Request support</a></li> 但是,它不起作用,它使用java.lang.NullPointerExcepti
<li><a href="actionController?key=contact">Contact</a></li>
<li><a href="actionController?key=support">Request support</a></li>
但是,它不起作用,它使用java.lang.NullPointerException
谢谢这意味着找不到“联系人”或“支持”参数。在使用它们之前检查它们是否为空。您的servlet代码似乎与您的HTML代码片段不匹配。我认为你需要写:
String key = request.getParameter("key");
if (key != null && key.equals("contact"))
{
RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/center/Contact.jsp");
view.forward(request, response);
}
else if (key != null && key.equals("support"))
{
RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/center/Support.jsp");
view.forward(request, response);
}
请尝试以下代码:
String key = request.getParameter("key");
if(null == key){
// do something
} else if(key.equals("contact")){
// do something else
} else if(key.equals("support")){
// do something else
} else {
// etc
}
您的请求将不包含任何“联系人”或“支持”参数,而是包含一个“键”参数
我建议您查看-解释URI语法,包括查询参数。首先使用param name作为
键获取键
值(这是问题的根本原因),然后简单地将字符串文本作为第一个参数进行比较,以避免出现任何NullPointerExceotion
:
String key = request.getParameter("key");
if ("contact".equals(key)){
RequestDispatcher view =
request.getRequestDispatcher("/WEB-INF/center/Contact.jsp");
view.forward(request, response);
}else if ("support".equals(key)){
RequestDispatcher view =
request.getRequestDispatcher("/WEB-INF/center/Support.jsp");
view.forward(request, response);
}
如果需要,还可以添加默认处理,即处理key
既不是contact
也不是support
的场景。您还可以通过其他方式进行检查,如soIf(“contact.equals(key))
。字符串literal“contact”
已经被保证不为null
:)@BalusC:绝对——我在自己的代码中通常就是这样做的——但是OP似乎对null指针异常感到困惑,所以我认为这种方式可能会更清楚出了什么问题。:-)
String key = request.getParameter("key");
if ("contact".equals(key)){
RequestDispatcher view =
request.getRequestDispatcher("/WEB-INF/center/Contact.jsp");
view.forward(request, response);
}else if ("support".equals(key)){
RequestDispatcher view =
request.getRequestDispatcher("/WEB-INF/center/Support.jsp");
view.forward(request, response);
}