2016-07-29 51 views
-1

经过很多努力,终于在这里提出这个问题。我正在处理JSP下拉列表,我正在填充数据库中的列表项。在一个点上,我没能得到解决,当值null无法为jsp中的空查询结果填充下拉列表

<% 
    String v_divcode = v_div_code; //Any division code between A to D     
    String sql = " SELECT DIV_CODE, DIV_NAME "+ 
       " FROM tbl_division "+ 
       " where show_FLAG='Y' "; 

      stmt=conn.prepareStatement(sql); 
      rs=stmt.executeQuery(); 

      while(rs.next()){%> 
       <option value="<%=rs.getString("div_code")%>" <%=v_divcode.equals(rs.getString("div_code"))?"Selected":""%>><%=rs.getString("div_name")%></option> 
      <% 
      } 

      rs.close(); 
      stmt.close(); 
      %> 

按照上面的代码我能够填充列表时v_divcode = (division code between A to D)但如果v_divcode=null话,我没能获得列表项在下拉列表中。我已经尝试了一切。请帮我解决这个问题。谢谢。

+0

您是否有任何错误?如果没有,我会尝试添加一些日志记录,至少例如''while.'循环中的System.out.println(rs.getString(“div_code”));监视发生了什么(即是否有真正的记录)。 –

+0

是的,它打印记录,如果它发现'v_divcode'有一些价值,如果'v_divcode'是'空',那么它会抛出'NullPointerException'。 @Jozef –

回答

0

当v_divcode将是空的,你的代码将抛出NullPointerException附近<%= v_divcode.equals ....

您应该执行空检查。

+0

我也尝试过这件事,它也根本不工作@Jekin –

+0

正如你所建议的我,我采取了空检查的照顾,但问题仍然存在。 –

+0

你能在这里粘贴你的更新代码吗? –

0

如果v_divcode包含null那么您的代码将抛出NullPointerException。为避免此类问题,您可以尝试如下方式:

if(v_divcode==null){ 

    //Your error handeling code goes here 

}