我用的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>
如果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>
直接用<c:if判断吧
<c:if text="${meiyue.clRecNo} eq '0'"..
我以前是if(fei==0),但是这样的话,全显示该用户已经交费
我对jstl不是很熟,请大侠帮帮忙啊。后边就不会写了。
String fei=(String)session.getAttribute("f");
if("0".equals(fei)){
%> 你把原来的改成这样~这样不会因为你的fei取值为空时报错~你报的那个错可能是fei没取到值~你在页面输出一下fei看看有没有值~
就可以了,session.getAttribute("f")是不是你没存进去值啊
jstl不是很难~除了自定义标签那块都还好~你只要找点资料随便看看就会了解~jstl自带了<c:choose><c:forEach><c:forTokens><c:if><c:import><c:otherwise>等标签~
<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>
<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>
我是这样解决的:<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>