Stacktrace:] with root cause

解决方案 »

  1.   

    报错不是很明白了吗!
    jsp 36行出现了空指针...
    既然36行是for循环,那自然  i<list.size();  有问题
      

  2.   

    33:                       开户人:&nbsp <input type="text" id="holder" value="<%=((JSONObject)jsonArray.get(0)).get("account_name").toString()%>" readonly> <br/>
    34:                       结账方式:<select disabled="disabled">
    35:                           <% 
    36:                               for(int i=0;i<list.size();i++){
    37:                                   DynaBean db = (DynaBean)list.get(i);%>
    38:                        <option value="<%=db.get("dic_id").toString()%>"><%=db.get("dic_name").toString()%></option>
    39:                         <%}%>
    Stacktrace:] with root cause
    java.lang.NullPointerException
    1、没有看到你判断 jsonArray是否为空 的情况
    2、也没有看到 判断 list是否为空的情况
    3、而你的程序恰好是报了空指针 ,你说呢,在使用返回的数组或者对象之前还是判断一下是否为null先吧换成这样子试试:<% 
      if (list != null) {
      DynaBean db = null  ; //在外面定义, 免得每次做一个循环都需要定义一个,如果jvm不及时释放的话,占用栈空间
      for(int i=0;i<list.size();i++){
    db = (DynaBean)list.get(i);
    %>
    <option value="<%=db.get("dic_id").toString()%>"><%=db.get("dic_name").toString()%></option>
                            
    <%
      }
         }
    %>
      

  3.   

    自古2楼出真相啊...输出这个List的size,看看有值否?
      

  4.   

    这里就是List的size方法出错了, 还输出,能输出就不报错了,贼应该是List为null,
      

  5.   

    list在页面就没得到值吧?你这个之前也不判断下。
      

  6.   

    public static JSONArray getpaytype(HttpServletRequest request){       
             JSONArray jsonArray = null ;       
      String sql = ("select  * from dic t where 1=1 and dic_type_id =9");         
         List<DynaBean> list = DataBaseOperator.queryList(sql.toString());        
            return jsonArray; jsonArray 是空的,JSP页面肯定取不到了