2017-06-27 13 views
0

PrimefacesダイアログからJavaメソッドを呼び出したい。私はこのコードをテストした:PrimefacesダイアログからJavaメソッドを呼び出す

<h:form> 

         <p:dialog header="New Sensor" widgetVar="dlg" focus="name" modal="true" showEffect="fade"> 
          <h:panelGrid columns="2" cellpadding="5"> 
           <h:outputLabel for="name" value="Name" /> 
           ........ 
           <p:inputText id="enabled" label="enabled" value="#{newSensor.sensor.enabled}" /> 
          </h:panelGrid> 

          <f:facet name="footer"> 
           <p:commandButton id="ajax" value="Create Sensor" styleClass="ui-priority-primary" type="button" actionListener="#{newSensor.saveRecord()}"/> 
          </f:facet> 
         </p:dialog> 

        </h:form> 

Javaの豆:

@Named 
@RequestScoped 
public class NewSensor implements Serializable 
{ 
    private SensorObj sensor = new SensorObj(); 

    public SensorObj getSensor() 
    { 
     return sensor; 
    } 

    public void setSensor(SensorObj sensor) 
    { 
     this.sensor = sensor; 
    } 

    public void saveRecord(){ 
     System.out.println(">>>>>>>!!!!!! " + sensor.getName()); 
    } 

} 

Wehn私は何も起こりません]ボタンをクリックしてください。私はこの問題をどのように修正できるのかアドバイスをいただけますか?

+0

時には属性の追加= "@ this"は私の問題を解決します – Fritz

+0

この記事を見ましたか?[ダイアログからの更新](https://stackoverflow.com/questions/44698063/how-to-reset-inputtext-field-in -jsf-primefaces/44698531#44698531)?!? (第3の解決策を参照) –

+0

[commandButton/commandLink/ajaxアクション/リスナーメソッドが呼び出されていないか、入力値が更新されていない]の重複している可能性があります(https://stackoverflow.com/questions/2118656/commandbutton-commandlink-ajax-action-listener -method-not-invoked-or-input-value) – Kukeltje

答えて

2

commandButtonでボタンを削除しないと、type="button"が削除されるはずです。

さらに、commandButtonactionListenerを使用しています。
Bean内のメソッドのパラメータは、ActionEventである必要があります。

public void saveRecord(ActionEvent actionEvent) { 
    System.out.println(">>>>>>>!!!!!! " + sensor.getName()); 
} 

詳細については、hereを参照してください。

+0

Peter Tonevの質問に答える必要はなく、貴重なフィードバックはほとんどありません。しかし、ActionEventに関するあなたのコメントは間違っています。 actionListenerが最後にwithout()を含んでいれば有効ですが、そこにあるのでActionEventは省略できます。それをhttps://stackoverflow.com/questions/2118656/commandbutton-commandlink-ajax-action-listener-method-not-invoked-または-input-valueの複製としてマークすることは許可されています。その質問では#1です。 – Kukeltje

+0

@Kukeltjeご意見ありがとうございます。また、ActionListenerについての説明もありがとうございます。 私はELの終わりに()を見落としました。 – Tonkichi

関連する問題