Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较Java中的字符串参数时出现NullPointerException_Java_Servlets_Nullpointerexception - Fatal编程技术网

比较Java中的字符串参数时出现NullPointerException

比较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

我使用servlet作为重定向页面的控制器。因此,我有以下链接:

<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

的场景。您还可以通过其他方式进行检查,如so
If(“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);
}