在Spring MVC中如何在EL中显示现有值和新创建的值? [英] How to display existing and newly created values in EL in Spring MVC?

查看:46
本文介绍了在Spring MVC中如何在EL中显示现有值和新创建的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

只有模型的最后一个值显示为EL,因此不会显示现有值.

Only the last value of the model is displayed as EL, so the existing value is not displayed.

BoardController的代码.

The BoardController code for that.

@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>

首先,它是您第一次对评论发表评论的日志.

First, it is the log of when you first commented on the comment.

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}]}

之后,如果您要发表新评论,

After that, if you make a new comment,

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=[]}

如上所述,当您创建新评论时,评论列表将从现有评论中消失.

As above, when you create a new comment, the comment list will disappear from the existing comment.

最后一个cocList是一个空字符串,因为您尚未对评论发表评论.

The last cocList is an empty string because you have not commented on the comment.

我确信EL是错误的.如何修复EL来解决我的问题?

I am convinced that EL is wrong. How do I fix the EL to solve my problem?

推荐答案

即使您拥有

<c:forEach items="${cocList}" var="cocList">

cocList是列表的引用(模型属性),但是由于将其分配给其他var="cocList",因此会产生意想不到的后果,因此应将列表项命名为其他名称.

cocList is a reference your list (model attribute), but since you are assigning it to something else var="cocList" you are going to have unintended consequences, you should name your list item to something else.

<c:forEach items="${cocList}" var="item">

然后您应该可以引用${item.blah}

想到

<c:forEach items="${cocList}" var="cocList">

for (Object cocList : cocList) {
   ...
}

显然不好,而是您想要:

Which obviously is bad, instead you want:

<c:forEach items="${cocList}" var="item">

这是

for (Object item : cocList) {
   ...
}

我相信这应该可以解决您的问题.

I believe that should fix your problem.

关于它的价值,很可能是您没有在使用EL或SpEL,而是在使用JSTL.通常,SpEL标签看起来像spring:...c:...通常引用JSTL.

For what it is worth as well, most likely, you are not using EL or SpEL, you are using JSTL at the moment. Normally the SpEL tags are going to look like spring:..., c:... normally references JSTL.

这篇关于在Spring MVC中如何在EL中显示现有值和新创建的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆