2017-04-01 14 views
0

これはJSFのUIコードです。アプリは、シンガポールドルから日本円への小さな通貨変換です。UIがバッキングBeanを更新していません

<h:form> 
      <h:inputText id="conversion" value="#{conversor.sgd}"></h:inputText> 
     <h:commandButton value = "Convertir a yen"> 
      <f:ajax execute = "@all" render = "conversion_lista" event="click"/> 
     </h:commandButton> 
     <h2><h:outputText id = "conversion_lista" value = "Conversion: #{conversor.jpy}"/></h2> 
     </h:form> 

そして、これが私のバッキングBeanです:

@Named("conversor") 
@Dependent 
public class Conversor { 

    private int sgd; 

    public Conversor() { 
     sgd = 1; //initial value 
    } 

    public int getSgd(){ 
     return sgd;   
    }  

    public void setSgd(int sgd){ 
     this.sgd = sgd; 
    } 

    public int getJpy(){ 
     return sgd * 2; //fake 
    } 
} 

私は、のcommandButtonをクリックして最初のinputTextを実行し、バッキングBeanの変更にsgdプロパティを行い、その後、以前でのoutputTextをレンダリングしたいですシンガポールドルから日本円への換算を計算する。

ただし、入力はバッキングBeanに渡されません。

getJpy()は、呼び出されるたびに乱数を返し、ボタンをクリックするたびに乱数を描画しました。それはコールが機能することを意味します。しかし、私はテキストインプット(sgd/singaporean dollar)をバッキングビーンに渡すことができず、正しいコンバートを行うことができません。

ここでは何が起こっていますか?

答えて

0

[OK]を修正しました。

@Dependentの代わりに@RequestScopedを使用しました。

私は何をしているのか分かりませんが、それは機能します。

結果は私が欲しかったのですが、ボタンをクリックするとUIで変換が行われます。

+0

_「私は何をしているのか分かりませんが、うまくいきます。」_それから、基本的なチュートリアル – Kukeltje

関連する問題