0

私は次のデータテーブルを持っています:

   <h:form> 
<h:dataTable id = "notTable" value="#{editCategoryBean.allNotifications}" var="notification">
     <h:column>                 
        <f:facet name="header">Key</f:facet>                    
        <h:inputText id = "notkey" value="#{notification.key}" />
     </h:column>
     <h:column>
        <f:facet name="header">Lang</f:facet>
        <h:inputText id = "notlanguage" value="#{notification.language}"/>
     </h:column>
     <h:column>
        <f:facet name="header">Value</f:facet>
        <h:inputText id = "notvalue" value="#{notification.value}"/>      
     </h:column>
   </h:dataTable>
<h:commandButton action ="#{editCategoryBean.save()}"  value = "Save" >    </h:commandButton>

データテーブルの allNotifications リストから通知を編集し、ボタンを 1 回クリックするだけですべての変更を保存したいと考えています。editCategoryBean からデータテーブルを反復するにはどうすればよいですか? または、それ以外の方法でこの動作を実装するにはどうすればよいですか?

4

1 に答える 1

1

JSF はvalue="#{editCategoryBean.allNotifications}"、通常の方法で、送信された値を使用して背後のモデルを既に更新しています。したがって、基本的に行う必要があるのは、保存のためにサービス層に渡すことだけです。

public void save() {
    yourNotificationService.save(allNotifications);
}

それ以外の場合、何らかの理由で自分で繰り返し処理することを強く主張する場合、おそらくテスト目的で送信された値を出力する場合は、通常の Java の方法でそれを実行してください。

public void save() {
    for (Notification notification : allNotifications) {
        System.out.println(notification.getKey());
        System.out.println(notification.getLanguage());
        System.out.println(notification.getValue());
    }
}
于 2013-06-17T16:53:22.460 に答える