仅将模型的最后一个值显示为EL,因此不会显示现有值。
为此的BoardController代码。
@RequestMapping("viewPage.do") public String viewPage(HttpSession session,HttpServletRequest request, HttpServletResponse response,Model model, @RequestParam(value="board_idx", defaultValue="0") int board_idx) throws IOException,IllegalStateException { // View comment list for this post List<HashMap<String, Object>> commentList= bService.getBoardForComment(boardData.getBoard_idx()); // loop (comment.size) for(int i = 0; i < commentList.size(); i++) { System.out.println("commentList Size : " + commentList.size()); //Saving the board_comm_idx value in the commentList to a variable int board_comm_idx= (Integer) commentList.get(i).get("board_comm_idx"); //System.out.println("board_comm_idx : " + board_comm_idx); // View comments in comments (viewed by board_idx, board_comm_idx) List<HashMap<String, Object>> getCommentOfCommentList = bService.getBoardCommentOfComment(board_idx, board_comm_idx); model.addAttribute("cocList", getCommentOfCommentList); System.out.println("GetCommentOfCommentList : " + getCommentOfCommentList); System.out.println("cocList (Model) : " + model); } model.addAttribute("commentList", commentList); // CommentList Information return "viewPage"; }
这是JSP代码。
<c:forEach items="${cocList}" var="cocList"> <div class="commentList" style="margin-left:70px"> <div class="what"> <div class="nickname"> <span> ${cocList.board_c_of_c_writer} </span> </div> <div class="writedatezone" style="margin-left: 715px;"> <span class="era"> <span class="glyphicon glyphicon-time enterReReply"></span> <span class="commentWriteDate"> <fmt:formatDate value="${cocList.board_c_of_c_writeDate}" pattern="yyy-MM-dd"/> </span> </span> </div> <c:if test="${cocList.idx == idx}"> <div class="duzone"> <span class="deleteOrUpdateComment"> <a class="updateComment">수정</a> <a class="deleteComment" onclick="deleteCoc(${cocList.board_idx},${cocList.board_c_of_c_idx})">삭제</a> <input type="hidden" value="${cocList.board_comm_idx}"> <input type="hidden" value="${cocList.board_c_of_c}"> <input type="hidden" name="board_idx" value="${boardInformation.board_idx}"> </span> </div> </c:if> </div> <pre>${cocList.board_c_of_c_content}</pre> </div> </c:forEach>
首先,它是您首次对评论发表评论的日志。
GetCommentOfCommentList : [{board_idx=3, board_c_of_c_writer=웹개발자, board_c_of_c_content=Test, board_c_of_c_idx=8, board_comm_idx=5, idx=4, board_c_of_c_writeDate=2017-11-30 10:33:06.0}] cocList (Model) : {cocList=[{board_idx=3, board_c_of_c_writer=웹개발자, board_c_of_c_content=Test, board_c_of_c_idx=8, board_comm_idx=5, idx=4, board_c_of_c_writeDate=2017-11-30 10:33:06.0}]}
之后,如果您发表新评论,
GetCommentOfCommentList : [{board_idx=3, board_c_of_c_writer=웹개발자, board_c_of_c_content=Test, board_c_of_c_idx=8, board_comm_idx=5, idx=4, board_c_of_c_writeDate=2017-11-30 10:33:06.0}] cocList (Model) : {cocList=[{board_idx=3, board_c_of_c_writer=웹개발자, board_c_of_c_content=Test, board_c_of_c_idx=8, board_comm_idx=5, idx=4, board_c_of_c_writeDate=2017-11-30 10:33:06.0}]} GetCommentOfCommentList : [] cocList (Model) : {cocList=[]}
如上所述,当您创建新评论时,评论列表将从现有评论中消失。
最后一个cocList是一个空字符串,因为您尚未对此评论发表评论。
我确信EL是错误的。如何修复EL以解决我的问题?
即使你有
<c:forEach items="${cocList}" var="cocList">
cocList是对列表(模型属性)的引用,但是由于将其分配给其他var="cocList"对象,将产生意想不到的后果,因此应将列表项命名为其他对象。
cocList
var="cocList"
<c:forEach items="${cocList}" var="item">
然后,您应该可以像 ${item.blah}
${item.blah}
考虑到
如
for (Object cocList : cocList) { ... }
这显然是不好的,而是您想要:
这是
for (Object item : cocList) { ... }
我相信应该可以解决您的问题。
对于它的价值,最有可能的是,您没有使用EL或SpEL,目前正在使用JSTL。通常,SpEL标签看起来像spring:...,c:...通常引用JSTL。
spring:...
c:...