2015-08-27 68 views
1

我想顯示一個列表,並且該列表的每個對象都有另一個列表,這些列表必須顯示,值將會顯示,但不會顯示,下面是我試過的代碼if有人可以確定我做錯了什麼,這將是非常有幫助的。我使用的是Spring MVC,但我不認爲它與這個錯誤有任何關係,任何幫助將不勝感激。在列表中顯示列表JSP頁面

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

在此先感謝

+1

不要完全改變你的問題,你問它,得到的回答之後。接受答案,然後就另一個問題提出另一個問題,**至少在嘗試自己解決問題後**。我回滾到原來的問題。 –

回答

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

所以,你正在遍歷列表markedFileList。在標籤的主體內部,當前元素是markedFileVal

然後你做

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

所以你ietarting超過markedFileList.fileNotings。但markedFileList是一個列表。這不是當前的元素。你想要的是

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

另外請注意,我從filenotings除去最後一次s。該變量指向單個文件註釋。不是幾個。

+0

是的,謝謝你指出我已經更新了我的問題,我看到了我犯的錯誤,但我的問題不是這樣。我沒有加載數據庫中的值 –

+0

這是當你問你的問題,當我回答它,當兩個人upvoted我的答案。改變問題使得答案無關緊要,並且對那些花時間閱讀和回答你原來的問題的人表示不敬。 –

+0

對不起,先生,我已經接受了答案。真的很抱歉造成了不便 –

0

@OneToMany(fetch = FetchType.EAGER,mappedBy =「fileTrackingManagement」) private List fileNotings;

fetchType的值默認爲懶惰,當我改變了它的價值,它的工作

相關問題