Spring返回的页面是空的

时间:2013-05-05 02:28:42

标签: spring

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

请求的控制器

    @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";
 }

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

UserEntity

   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>

有没有理由发生这种情况?

1 个答案:

答案 0 :(得分:1)

c:foreach是否可以处理单个对象?您只返回一个用户。要么摆脱模板中的循环,要么将用户实体包装在列表中,并将该列表放入setter变量中。