在列表JSP页面中显示列表

时间:2015-08-27 06:37:16

标签: spring list jsp frontend jsp-tags

我正在尝试显示一个列表,该列表的每个对象都有另一个列表,我必须显示,值即将到来但未显示,下面是我尝试过的代码,如果有人可以识别我在做什么错了,这将非常有帮助。我正在使用Spring MVC,但我不认为它与此错误有任何关系,任何帮助都将不胜感激。

    @Entity
@Table(name="FILE_TRACKING_MANAGEMENT")
@NamedQuery(name="FileTrackingManagement.findAll", query="SELECT f FROM FileTrackingManagement f")
{

   @OneToMany(mappedBy="fileTrackingManagement")
    private List<FileNoting> fileNotings;

    //bi-directional many-to-one association to FileTrackingFile
    @OneToMany(mappedBy="fileTrackingManagement")
    private List<FileTrackingFile>  fileTrackingFiles;

    }

我的控制器类:

@RequestMapping("viewMarkedFiles/list")
    public ModelAndView viewMarkedFiles(Model model)
    {
        List<FileTrackingManagement> markedFileList=  fileService.getList();
        //model.addAttribute("markedFileList", markedFileList);

        return new ModelAndView("viewMarkedFiles", "markedFileList", markedFileList);
    }

我的JSP页面:

<table border="1" bgcolor="black" width="600px">
    <c:forEach items="${markedFileList}" var="markedFileVal">
    <%--                <c:set var="fileNotings" value="${jobs[i.index].jobId}"/> --%>
                        <tr
                            style="background-color: white; color: black; text-align: center;"
                            height="30px">

                            <td><c:out value="${markedFileVal.diarynumber}" />
                            <td><c:out value="${markedFileVal.subject}" />
                            <td>

                            </td>
                            <td>

                            </td>
                            <td>
                            <c:forEach items="${markedFileList.fileNotings}" var="filenotings">
                            <c:out value="${filenotings.notingData}" /></c:forEach>
                            </td>
</c:forEach>
</table>

它引发了这个异常:

45: <%--                        <c:out value="${fileVal.description}" /> --%>
46:                         </td>
47:                         <td>
48:                         <c:forEach items="${markedFileList.fileNotings}" var="filenotings">
49:                         <c:out value="${filenotings.notingData}" /></c:forEach>
50:                         
51:                         


Stacktrace:] with root cause
java.lang.NumberFormatException: For input string: "fileNotings"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)



at java.lang.Integer.parseInt(Unknown Source)

提前致谢

2 个答案:

答案 0 :(得分:2)

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

所以,你在列表markedFileList上进行迭代。在标记正文中,当前元素为markedFileVal

然后你做

<c:forEach items="${markedFileList.fileNotings}" var="filenotings">

所以你在markedFileList.fileNotings以上。但是markedFileList是一个列表。这不是当前的元素。你想要的是

<c:forEach items="${markedFileVal.fileNotings}" var="filenoting">

另请注意,我从s删除了最终filenotings。此变量指向单个文件。不是几个。

答案 1 :(得分:0)

@OneToMany(fetch = FetchType.EAGER,mappedBy =“fileTrackingManagement”)     私人列表fileNotings;

默认情况下,fetchType的值为Lazy,当我更改其值时,它会起作用