0

我请求了一个应该为用户填充对象的页面,但返回的页面是空的。

请求的控制器

    @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("setter", user);
     }

  return "/main/user/testing";
 }

要检索的父级和关联子级的模型

用户实体

   public class UserEntity implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "user_id")
    private Integer userId;

    @Column(name = "name")
    private String name;

        @ManyToOne(cascade={CascadeType.ALL})
        @JoinColumn(name="checker_id")
        private UserEntity checker;

        @OneToMany(mappedBy="checker", orphanRemoval=true, cascade = CascadeType.ALL)
        private Set<UserEntity> setters = new HashSet<UserEntity>();

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

模块

    public class Module implements Serializable{

  @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      @Column(name = "module_id")
      private Integer moduleId;

  @Column(name = "module_code")
      private String moduleCode;

  @Column(name = "module_name")
      private String moduleName;

因此,当在控制器上我使用用户 ID 作为参数时,我希望它与与用户关联的模块一起返回。

页面本身被返回,但它所拥有的只是表头,没有来自数据库的值。

请求的页面

   <table>
        <tr>
                    <th>User Id</th>
                    <th>Name</th>
            <th>Module Code</th>
            <th>Module Name</th>
              </tr>

       <c:forEach items="${setter}" 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>

发生这种情况有原因吗?

4

1 回答 1

1

c:foreach 是否适用于单个对象?您正在返回一个用户。要么摆脱模板中的循环,要么将用户实体包装在一个列表中,然后将该列表放入 setter 变量中。

于 2013-05-05T12:01:04.713 回答