在我的页面上,我只想获得一个用户详细信息。问题是我在页面上显示用户的详细信息时遇到问题。我正在尝试检索的对象与另一个类有一个关系。所以我想列出相关的对象。
模型
@Entity
@Table(name = "user")
@Component
public class UserEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "user_id")
private Integer userId;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="setter")
private Set<Module> sModule = new HashSet<Module>();
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="checker")
private Set<Module> cModule = new HashSet<Module>();
控制器
@RequestMapping(value = "/main/user/testing", method = RequestMethod.GET)
public String getRecords(@RequestParam("userId") Integer userId, ModelMap
model) {
if(userId !=null)
{
UserEntity user = userService.getUserByID(userId);
model.addAttribute("user", user);
}
return "/main/user/testing";
}
Jsp页面
<table>
<tr>
<th>User Id</th>
<th>Name</th>
<th>Module Code</th>
<th>Module Name</th>
</tr>
<c:forEach items="${user}" var="obj" >
<c:forEach items="${obj.sModule}" var="module" >
<tr>
<td><c:out value="${obj.userId}" escapeXml="true" /></td>
<td><c:out value="${obj.name}" escapeXml="true" /></td>
<td><c:out value="${module.moduleCode}" escapeXml="true" /></td>
<td><c:out value="${module.moduleName}" escapeXml="true" /></td>
</tr>
</c:forEach>
</c:forEach>
</table>
使用控制器代码,当我尝试访问该页面时。用户详细信息不包括在内。所以我想知道是否有一种方法可以只为一个用户而不是用户列表呈现对象。
答案 0 :(得分:0)
为什么使用<c:forEach items="${user}" var="obj" >
?看起来UserEntity
是一个对象而不是List
。因此,请删除<c:forEach items="${user}" var="obj" >
并尝试
<c:out value="${user.userId}" escapeXml="true" />