p><select size="1" name="D2" onchange="func('name')">
<option>请选择</option>
<%
String name=request.getParameter("D2");
conn.ConnectDestDB();
ResultSet rs5=null;
String sql5 = "select user_name from user_info";
rs5=conn.sm.executeQuery(sql5);
while(rs5.next()){
String user_name=rs5.getString("user_name");
%>
<option value="<%=user_name %>" <%if(user_name.equals(name)){%>selected<%}%>><%=user_name %></option>
<%} %>
</select></p>其中 如果把if(user_name.equals(name)改成if(name.equals(user_name)就会出错
不知道是为什么

解决方案 »

  1.   

    if(name != null && name.equals(user_name))
      

  2.   

    有可能你的name是null,报的是NullPointerException吧?
      

  3.   

    先说明报的什么错
    是空指针?空指针可能就是ls说的
    还是不能相等?
    不能相等可能就是request.getParameter( "D2 "); 
    D2后边多了个空格
      

  4.   

    request.getParameter
    确保你接到的不是空值,即NULL。可以写一个转换函数,来确保在接到空值的时候也不会出错。该方法支持传递中文不乱码。
      public String Str_rep(String str){
        if(str==null||str.equals("")){
          str  ="" ; 
         }else{
       try {
    //     str = new String(str.getBytes("ISO8859-1"));   
         str = new String(str.getBytes("ISO8859_1"), "GB2312");  
         }catch (Exception ex) {}
        }
       return str ;
    }用法如下:
    String username=Str_rep(request.getParameter("user_name"));
      

  5.   

    request.getParameter 
    确保你接到的不是空值,即NULL。 可以写一个转换函数,来确保在接到空值的时候也不会出错。该方法支持传递中文不乱码。 
        public   String   Str_rep(String   str){ 
            if(str==null ¦ ¦str.equals("")){ 
                str     =""   ;   
              }else{ 
          try   { 
    //           str   =   new   String(str.getBytes("ISO8859-1"));       
              str   =   new   String(str.getBytes("ISO8859_1"),   "GB2312");     
              }catch   (Exception   ex)   {} 
            } 
          return   str   ; 
    } 用法如下: 
    String   username=Str_rep(request.getParameter("user_name")); 
      

  6.   

    呵呵 错误是这样的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 /authorize.jsp at line 153150:  while(rs5.next()){
    151:  String user_name=rs5.getString("user_name");
    152:  %>
    153:  <option value="<%=user_name %>" <%if(name.equals(user_name)||user_name.equals(find)){%>selected<%}%>><%=user_name %></option>
    154:  <%} %>
    155:  </select></p>
    156:  </td>
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause java.lang.NullPointerException
    org.apache.jsp.authorize_jsp._jspService(authorize_jsp.java:278)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
    不存在是空值的问题 好像单纯就是顺序的问题
      

  7.   

    while(rs5.next()){ 
    String   user_name=rs5.getString("user_name"); 
    %> 
    <option   value=" <%=user_name   %> "   <%if(user_name.equals(name)){%> selected <%}%> > <%=user_name   %> </option> 
    <%}   %> 
    我想是因为String user_name; 是在循环体里吧 如果rs5.next 为NULL user_name 将不存在
    所以user.equser(user_name)不对
    你可以试试把String user_name=""; 放到循环体上面