簡體   English   中英

為什么我的清單沒有 <Object> 顯示在我的網頁上?

[英]Why isn't my List<Object> displaying on my webpage?

我正在嘗試在jsp頁面上顯示鏈接到當前登錄用戶的對象的List <>的內容。 該對象已成功創建,並使用創建它的用戶的user_id和一個簡單的system.out.print調試器存儲在數據庫中,我可以看到它已添加到列表中。

但是,當我嘗試在NewFile.jsp網頁上顯示它時,好像列表為空。 沒有錯誤,而是頁面只是空白,就像沒有要迭代的列表一樣。

UserController中的技能方法

  @RequestMapping(value = "/skill", method = RequestMethod.POST)
public String skill(@ModelAttribute("skillForm") Skill skillForm, BindingResult bindingResult, Model model, Principal principal) {
    skillValidator.validate(skillForm, bindingResult);

    if (bindingResult.hasErrors()) {
        return "skill";
    }

    // Adds skill object to database and adding it to Users skill list
    String name = principal.getName();
    skillService.save(skillForm, name);
    User currentUser = userService.findByUsername(principal.getName());
    currentUser.addSkill(skillForm);
    // Debug here shows that the list contains correct data and the list size
    System.out.println(skillForm.getSkillName());
    System.out.println(skillForm.getCategory());
    System.out.println(currentUser.getSkills().size());

    // Attempting to pass the list to NewFile.jsp to be displayed
    List<Skill> savedSkills = currentUser.getSkills();
    for(int i = 0; i < savedSkills.size(); i++) {
         model.addAttribute("skills", savedSkills);
         /*model.addAttribute("currentUser", currentUser);*/
    }

    return "NewFile";
}

NewFile.jsp

<table>
    <c:forEach var="o" items="${savedSkills}" > 
    <tr>
          <td>Skill Name:<c:out value = "${o.skillName}"/></td>
          <td>Category:<c:out value = "${o.category}"/>  </td>          
    </tr>
    </c:forEach>            
</table>

您需要指定要添加的技能,將列表添加為屬性,但是需要對其中的對象進行添加

for(int i = 0; i < savedSkills.size(); i++) {
         model.addAttribute("skills", savedSkills[i]);
         /*model.addAttribute("currentUser", currentUser);*/
    }

嘗試添加代碼model.addAttribute("savedSkills", savedSkills); 在return語句之前。 您尚未添加以“ savedSkills”命名的模型屬性。

有一些錯誤。 首先,您不需要循環。

List<Skill> savedSkills = currentUser.getSkills();
model.addAttribute("skills", savedSkills);

其次,您的EL的參數名稱錯誤,就像其他人所說的那樣。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM