Struts2休眠一对多关系1323

时间:2011-03-20 02:58:17

标签: hibernate struts2

我正在尝试使用struts2和hibernate一对多关系显示来自两个表Activites和Favorites的值

     //Activities
        @Entity
        @Table(name="ACTIVITIES")
        @OneToMany(fetch = FetchType.EAGER, mappedBy = "activities" , targetEntity=Favorites.class, cascade=CascadeType.ALL )
            public Set<Favorites> getFavorites() {
                return favorites;
            }
            public void setFavorites(Set<Favorites> favorites) {
                this.favorites = favorites;
            }

        @Id
            @GeneratedValue
            @Column(name="ACTIVITYID")
            public Long getId() {
                return id;
            }
            public void setId(Long id) {
                this.id = id;
            }


        //Favorites
        @Entity
        @Table(name="Favorites")
        @ManyToOne(optional=false)
            public Activities getActivities() {
                return this.activities;
    }

和其他字段

在jsp中:

<s:iterator value="activityList" id="activityList" status="activityStatus" <s:hidden id="activityList" name="activityList[%{#activityStatus.index}].id" />                          
<s:iterator value="favorites" var="fav" status="myStat">                                                          
<s:checkbox id="accFavorities"  name="accFavorities"/></td>     
<s:iterator>

但是当提交时,我从活动表中获取了id,但没有获取值收藏夹表格,这是复选框。

在我的动作类中

for (Activities al : activityList) {
    for (Favorites ss : al.getFavorites()) {
         System.out.println(ss.getCompany());
         System.out.println(ss.getAccFavorities());
          }
   }

在jsp中我尝试了下面这样的事情,在这种情况下,数据库本身的值不会出现

<s:iterator value="%{favorites}" id="fav" status="myStat"> 
<s:checkbox id="accFavorities" value="activityList[%{#activityStatus.index}].fav[%{#myStat.index}].accFavorities"/></td>

非常感谢任何帮助。

感谢

1 个答案:

答案 0 :(得分:0)

您必须定义复选框,以便在浏览器提交表单时,参数名称与预期的bean结构匹配。

也许您可以尝试http://struts.apache.org/2.2.1/docs/struts-2-form-tags.html#Struts2FormTags-Struts2CheckboxTag

中显示的“key”属性