AlanH
1
我的页面代表一个博客(一个红框表示的),遍历时有问题,当这个“博客”评论区没有内容时则,整条都不显示,
结构如图
jsp页面代码如下:
<table border="1" >
<c:forEach var="blog" items="${blogsList }">
<tr><td>${blog.b_title}</td><td>${blog.b_blog }</td><td>by ${blog.simpleUser.sp_name }</td>
</tr>
<tr><td colspan="3">评论区</td></tr>
<tr>
<td colspan="3">
<form action="${pageContext.request.contextPath }/simpleUser/replyBlogAction.action" method="post">
<input type="text" name="m_message" placeholder="写出你的观点">
<input type="hidden" name="sp_id" value="${SessionsimpleUser.sp_id }">
<input type="hidden" name="b_id" value="${blog.b_id }">
<input type="submit" value="发表">
</form>
</td>
</tr>
<c:if test="${fn:length(blog.messagesList)>0}">
<c:forEach var="message" items="${blog.messagesList }">
<tr>
<td>${message.m_message }</td><td colspan="2">by${ message.from_id}</td>
</tr>
</c:forEach>
</c:if>
<c:if test="${fn:length(blog.messagesList)<1}">
<tr><td colspan="3">暂无评论</td></tr>
</c:if>
</c:forEach>
</table>
项目截图
你的复制出来的代码格式乱了,没法阅读。你先学一下怎么用markdown
,再把逻辑描述清楚。我觉得你这个问题提不大
你这 <c:forEach>
把整个 tr
都包裹了。你应该把前2个 tr
都移出到 <c:forEach>
外面去。
AlanH
5
tr移出来不就变成一行n列?我这个是两个循环,嵌套的一个循环整体,一个循环评论,我又新做了一个图
那个这个要两个循环啊。外循环遍历博客,内循环遍历博客的评论。
AlanH
7
用c:choose,c:when,c:otherwise也没解决
<table border="1" >
<c:forEach var="blog" items="${blogsList }">
<tr>
<td>${blog.b_title}</td><td>${blog.b_blog }</td>
<td>by ${blog.simpleUser.sp_name }</td>
</tr>
<tr>
<td colspan="3">评论区</td>
</tr>
<tr>
<td colspan="3">
<form action="${pageContext.request.contextPath }/simpleUser/replyBlogAction.action" method="post">
<input type="text" name="m_message" placeholder="写出你的观点">
<input type="hidden" name="sp_id" value="${SessionsimpleUser.sp_id }">
<input type="hidden" name="b_id" value="${blog.b_id }">
<input type="submit" value="发表">
</form>
</td>
</tr>
<c:choose>
<c:when test="${fn:length(blog.messagesList)>0}">
<c:forEach var="message" items="${blog.messagesList }">
<tr>
<td colspan="2">${message.m_message }</td><td >by${ message.from_id}</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise >
<tr><td colspan="3">暂无评论</td></tr>
</c:otherwise>
</c:choose>
</c:forEach>
</table>
AlanH
8
我今天才恍然大悟,不是页面问题,是后台查询到数据映射的问题,这个帖子也不能编辑了,谢谢来看想帮助解决的伙计们
1 Like