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> 

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

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

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

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

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