2016-06-15 5 views
0

データテーブルの行をダブルクリックしてモーダルダイアログに表示するときにオブジェクトを取得しようとしています。私は何かが欠落しているのは、それが正しく1回だけだからです。 Beanオブジェクトが設定された後、私は何をしても値を保持します。primefacesビューは、なぜ新しいものとして設定すると値を保持しますか?

* .xhtml:

<!-- Modal dialog --> 
    <p:dialog widgetVar="addNotDlg" id="idAddNotDlb" minHeight="40" modal="true" 
     resizable="false" draggable="false" style="heigth:500"> 

      <p:panel id="panel"> 
       <p:messages id="messages" /> 
       <h:panelGrid columns="3" cellpadding="5"> 

        <p:outputLabel for="resultado" value="Resultado:" /> 
        <p:inputText id="resultado" 
         value="#{acuerdoBean.notificacion.resultado}" label="resultado" /> 
        <p:message for="resultado" /> 

        <p:outputLabel for="motivo" value="Motivo:" /> 
        <p:inputText id="motivo" 
         value="#{acuerdoBean.notificacion.motivo}" label="motivo" /> 
        <p:message for="motivo" /> 

       </h:panelGrid> 

       <p:commandButton value="Guardar" id="addNewNotButton" actionListener="#{acuerdoBean.addNotificacion()}" 
        update=":formNotificacion:notificacionesTable" 
        oncomplete="handleLoginRequest(xhr, status, args)" /> 
       <p:commandButton value="Cerrar" id="closeNewNotButton" onclick="PF('addNotDlg').hide();" /> 
       <h:outputText value="" /> 
      </p:panel> 


    </p:dialog> 

Bean.javaコード*:

public void generateNewNotificacion() { 
    this.tiposNotificaciones = pservice.getTiposNotificaciones();  
    this.tipoNotificacion = new Rstiponotifica(); 
    this.direccionPorDefecto = (Rsdireccion) pservice.findDireccionPorDefecto(); 

    this.notificacion = new Rsnotificacion(); 
    this.notificacion.setRsacuerdo(acuerdo); 
    this.notificacion.setRstiponotifica(tipoNotificacion); 
    this.notificacion.setRsdireccion(direccionPorDefecto); 
} 

上記機能が他方.xhtmlファイルイベントで実行される。ここで

コードです。私は私の "this.notificacion"オブジェクトがモーダルで新しいものとして現れるはずですが、そうではありません。 "this.notification"オブジェクトは以前に設定され、メモリに残ります。

<p:commandLink onclick="PF('addNotDlg').show();" actionListener="#{acuerdoBean.generateNewNotificacion()}"> 
    <h:outputText value="Añadir nueva notificacion" /> 
</p:commandLink> 

ありがとうございます。

答えて

1

コマンドリンクをクリックしたときにダイアログボックス内のパネルを更新すると、問題が解決されます。 commandLinkには、使用できる更新属性があります。

あなたはprimefacesのウェブサイト上で作業例を見ることができます:http://www.primefaces.org/showcase/ui/data/schedule.xhtml

+0

おかげで多くは、それは私の問題を解決します – Termosfera

関連する問題