我用的jstl在jsp页面获取bean中的值,现在有个字段clPayed,这个字段在数据库中只有两个值:1或者0.我想让这个值等于0的时候,在JSP页面出现一个链接<td width="32"><a href="/netcom/login.do?method=selectmeiyue&clRecNo=${meiyue.clRecNo}"><img src="/netcom/images/H11.gif" border="0"></a></td>
如果clPayed==1的时候则输出该用户已经交费,于是我在bean中建立一个session,然后在页面获取
这个session。但是现在JSP页面报错如下:
org.apache.jasper.JasperException: Exception in JSP: /admin/allmeiyue.jsp:55
52: 
53: <%
54: String fei=(String)session.getAttribute("f");
55: if(fei.equals("0")){
56: %>这是怎么回事啊,求大侠们帮忙啊!!!
代码如下:
<%!boolean flag=true;%>
       <c:forEach var="meiyue" items="${pageBean.data}">       <tr bgcolor=<%=(flag)?"#E8F1F4":"#FBFEE9"%>>
<td align="left"><a href=/netcom/admin/showmeiyue.jsp?clRecNo=${meiyue.clRecNo}>${meiyue.clMeterID}</a></td>
<td>${meiyue.clCustName}</td>
<td>${meiyue.clTotal1}</td>
<td>${meiyue.clTotal2}</td>
<td>${meiyue.clTotal3}</td>
<td>${meiyue.clYearMonth}</td><%
String fei=(String)session.getAttribute("f");
if(fei.equals("0")){
%>
<td width="32"><a href="/netcom/login.do?method=selectmeiyue&clRecNo=${meiyue.clRecNo}"><img src="/netcom/images/H11.gif" border="0"></a></td>
<%
}else{
%>
<td>该用户已经交费</td>
<%
}
%>
</tr>
  <%flag=!flag;%>
</c:forEach>    

解决方案 »

  1.   

      <%flag=!flag;%> 拿到</c:forEach>   外面来
      

  2.   

    既然用jstl还写jsp脚本干啥
    直接用<c:if判断吧
    <c:if text="${meiyue.clRecNo} eq '0'"..
      

  3.   

    这样不行啊,这样还是55行 if(fei.equals("0")){ 报错。
    我以前是if(fei==0),但是这样的话,全显示该用户已经交费
      

  4.   

    <%!boolean flag=true;%> 你这个是用来判断什么的?
      

  5.   


    我对jstl不是很熟,请大侠帮帮忙啊。后边就不会写了。
      

  6.   

    <% 
    String fei=(String)session.getAttribute("f"); 
    if("0".equals(fei)){ 
    %> 你把原来的改成这样~这样不会因为你的fei取值为空时报错~你报的那个错可能是fei没取到值~你在页面输出一下fei看看有没有值~
      

  7.   

    用<c:if text="${meiyue.clRecNo} eq '0'"></c:if>
    就可以了,session.getAttribute("f")是不是你没存进去值啊
      

  8.   


    jstl不是很难~除了自定义标签那块都还好~你只要找点资料随便看看就会了解~jstl自带了<c:choose><c:forEach><c:forTokens><c:if><c:import><c:otherwise>等标签~
      

  9.   


    <c:choose>
    <c:when test="${sessionScope.f eq '0'}">
     <a href="/netcom/login.do?method=selectmeiyue&clRecNo=${meiyue.clRecNo}"> <img src="/netcom/images/H11.gif" border="0"> </a> 
    </c:when>
    <c:otherwise>
    该用户已经交费 
    </c:otherwise>
    </c:choose>
      

  10.   

    <%!boolean flag=true;%> 
          <c:forEach var="meiyue" items="${pageBean.data}">       <tr bgcolor= <%=(flag)?"#E8F1F4":"#FBFEE9"%>> 
    <td align="left"> <a href=/netcom/admin/showmeiyue.jsp?clRecNo=${meiyue.clRecNo}>${meiyue.clMeterID} </a> </td> 
    <td>${meiyue.clCustName} </td> 
    <td>${meiyue.clTotal1} </td> 
    <td>${meiyue.clTotal2} </td> 
    <td>${meiyue.clTotal3} </td> 
    <td>${meiyue.clYearMonth} </td> <% 
    String fei=(String)session.getAttribute("f"); 
    if(fei==null||(fei!=null&&fei.equals("0"))){ 
    %> 
    <td width="32"> <a href="/netcom/login.do?method=selectmeiyue&clRecNo=${meiyue.clRecNo}"> <img src="/netcom/images/H11.gif" border="0"> </a> </td> 
    <% 
    }else{ 
    %> 
    <td>该用户已经交费 </td> 
    <% 

    %> 
    </tr> 
      <%flag=!flag;%> 
    </c:forEach>    
      

  11.   

    java脚本用着挺好,感觉jstl不自在。
      

  12.   

    纳闷了,为什么这几种方法都获取不到clPayed的值呢,clPayed的值都是null。
      

  13.   

    如果 fei是空值的话会出错。
      

  14.   

    谢谢大家,已经解决了,来者有分!
    我是这样解决的:<td> 
    <c:if test="${meiyue.clPayed==0}"> 
           <a href="/netcom/login.do?method=selectmeiyue&clRecNo=${meiyue.clRecNo}"> <img src="/netcom/images/H11.gif" border="0"> </a>
            </c:if> 
            <c:if test="${meiyue.clPayed==1}"> 
            <font color="#CC0000">已缴费</font>
            </c:if>
     </td>