Struts2 Hibernate отношения один ко многим 1323 - PullRequest
0 голосов
/ 20 марта 2011

Я пытаюсь отобразить значение из двух таблиц Activites и Favorites с использованием struts2 и гибернационного отношения один-ко-многим

     //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>

но при отправке я получаю идентификатор из таблицы активности, но не таблицу значений в фаворитах, которая является флажком.

В моем классе действий

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 голосов
/ 22 марта 2011

Вы должны установить свой флажок так, чтобы, когда браузер отправлял форму, имена параметров соответствовали ожидаемой структуре bean-компонента.

Может быть, вы могли бы попробовать атрибут "key", как показано в http://struts.apache.org/2.2.1/docs/struts-2-form-tags.html#Struts2FormTags-Struts2CheckboxTag

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...