MultiSelect选项JSP中的NPE

时间:2014-06-28 04:17:28

标签: java jsp nullpointerexception

我写了一个包含mutiple select的jsp代码,当我点击提交时,我得到了null pointer exception。我正在使用request.getParametervalues()从多个选择中获取数据:

jsp代码如下

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page language="java" import="java.lang.* ,javax.servlet.*,javax.servlet.http.*"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

</head>
<body>

<form id="form1" method="get" name="form">   

<select name="color1" id="dd1" multiple>
<option value="empty">Select Color</option>
<option value="RED">red</option>
<option value="BLUE">blue</option>
<option value="GREEN">green</option>
<option value="YELLOW">yellow</option>
<option value="PINK">pink</option>
<option value="BLACK">black</option>
<option value="BROWN">brown</option>
<option value="PURPLE">purple</option>
</select>

<input type="submit" value="Submit">
</form>
</body>  
</html>
<%
  String [] x = request.getParameterValues("color1");
  if(!x.equals("")) 
  {
   for (int i = 0; i < x.length; i++)
    out.println (x[i]);

  }                      
%>

我在out.println (x[i]);部分得到空指针异常 我也尝试了if(x ! = null)给出了错误

我也试过这个:

 if(request.getParameterValues("color1").equals(null)) 
  {
      out.println("abcd");
  }          

它给出了同样的例外

1 个答案:

答案 0 :(得分:0)

scriplet

中执行此操作之前进行检查
if(request.getParameterValues("color1")!=null){
//Go On
}

由于您的select处于相同的.jsp状态,等等启动加载,它肯定会为您提供null

<select name="color1" id="dd1" multiple>

此外,您正在将array""

进行比较
if(!x.equals("")) //No use Check for Not Null
if(x!=null)//Cahange this

如果您正在使用表单,为什么不在 Servlet中传递请求并执行检查和其他内容。