2 jerome66 jerome66 于 2015.07.28 06:12 提问

jsp中进行判断的问题,抛出空指针异常

源代码如下,是未经判断的情况,产生了空指针异常,报错的下面第二句话,现在的情况是有附件是不报错,无附件是就报错(ps. file代指附件)

<s:set var="file" value="mailInfoFB.file" scope="page"></s:set>
<%fileName = ((String)pageContext.getAttribute("file")).split(","); %>
<tr id="addedfujian">
<td></td>
<td colspan="2">
    <c:if test="${file != null}">
    <!--附件列表开始-->
    <div class="attachment">
    <div class="att_mail"><strong>附件(<%=fileName.length %>个)</strong></div>
    <div class="att_table">
         <table  border="0" cellpadding="0" cellspacing="0">
         <%for(int i = 0;i<fileName.length;i++) {%>

         <tr><td style="text-align: left;"><%=fileName[i]%></td><td  style="text-align: left;"><span style="color: #7D7D7D;"></span></td><td  style="text-align: left;">
         <input type="button" onclick="$('#fileName').attr('value','<%=fileName[i] %>');$('#folderType').attr('value','${ft}');$('#downloadform').submit();" value="下载">
         </td></tr>
         <%} %>
        </table>
    </div>
    </div>
    <!--附件列表结束-->
    </c:if>
 </td>
</tr> 

6个回答

zjq78577117
zjq78577117   2015.07.28 07:45
已采纳

pageContext.getAttribute("file"),有附件会返回一个值,如果没有,返回的是null,会抛出空指针异常

zjq78577117
zjq78577117 在调用.split(",")方法前,进行非空判断,if(pageContext.getAttribute("file") != null) { fileName = ((String)pageContext.getAttribute("file")).split(","); }
2 年多之前 回复
jerome66
jerome66 那请问应该怎么解决呢
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2015.07.28 06:23

关于Android setOnclicklistener抛出空指针的问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Evankaka
Evankaka   Ds   Rxr 2015.07.28 08:29

<%fileName = ((String)pageContext.getAttribute("file")).split(","); %>
<%=fileName.length %>
这些地方都 要做null值判断

beacon_2011
beacon_2011   Rxr 2015.07.28 08:53

打印一下,看看那个变量为空了

yuke198907
yuke198907   2015.07.28 08:59

得先判断pageContext.getAttribute("file")是否为null,然后再做处理

bengerai
bengerai   2015.07.28 09:12

不要强制转String,这样会成null,可以用+“”实现

Csdn user default icon
上传中...
上传图片
插入图片