请求界面为选择性别与爱好(多个复选框),为什么当不选择爱好时即len=0时,并没有按jsp文件说写的那样出现文件,而是页面报错,实在不解,请耐心的朋友帮看看这是为什么?<%
String msg = null;
String sex = request.getParameter("sex");
String[] favorites = request.getParameterValues("favorites");
int len = favorites.length;
boolean tag = true;
if(sex == null)
  msg = "<font color='red'>请选择性别</font><br>";
else 
  msg = sex.equals("男") ? "先生你好!" : "女士你好!";
if(len <= 0)
{
  msg = msg+"你<font color='red'>无</font>爱好?";
  tag = false;
}
msg=msg+"<br>你的爱好有:";
for(int i = 0; i < len; i++)
{
  msg = msg + favorites[i] + "、";
}
msg = tag?msg.substring(0,msg.length()-2):msg;
out.print("<br>" + msg + "<br>谢谢参与.");
%>异常信息如下:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /ShowChoice.jsp at line 2724: String msg = null;
25: String sex = request.getParameter("sex");
26: String[] favorites = request.getParameterValues("favorites");
27: int len = favorites.length;
28: boolean tag = true;
29: if(sex == null)
30:   msg = "<font color='red'>请选择性别</font><br>";
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)

解决方案 »

  1.   

    当favorites一个都没有选中时,是不能用String[] favorites = request.getParameterValues("favorites"); 来获取的,你做一下判断看是否选中了。
      

  2.   

    favorites有可能为空,你判空后再操作吧。。
      

  3.   

    这里:int len = favorites.length;,是不是写错了,应该length(), 
      

  4.   

    那不知道该怎样可以判断没有选择爱好时,jsp可以正常显示,而不是报页面错误,有可能是在这里已经发生了异常,这个异常可能是JSP内部默认的异常,但我也不了解,望指点。其他人的说法我都试了试还是一样,我想有可能就是出在这个问题上,谢谢!
      

  5.   


    int len = 0;
    if (favorites!=null && favorites.length>0){
    len = favorites.length;
    }