[英]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.