2013-05-06 100 views
0

在我的页面上我只想得到一个用户的详细信息。问题是我在显示页面上用户的详细信息时遇到问题。我试图检索的对象与另一个类具有一对一的关系。所以我想列出关联的对象。检索一个对象的春天

型号

@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

为什么使用<c:forEach items="${user}" var="obj" >?看起来UserEntity是一个对象,但不是List。因此,除去<c:forEach items="${user}" var="obj" >并尝试

<c:out value="${user.userId}" escapeXml="true" /> 
+0

我已经修改了我的开场白后,想要澄清的对象是有关系的家长,我想获得子对象也是如此。所以我想获得持久集和一个对象。有没有办法可以实现? – user2259555 2013-05-06 03:17:54