2017-04-01 197 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 
    } 
} 

我想單擊命令,執行第一inputText的,請在支持Bean變化sgd財產,然後通過事先渲染的outputText計算從新加坡元到日元的兌換。

但是,輸入不會傳遞給後臺bean。

我確實嘗試了一些東西,使得getJpy()每次調用它時都會返回一個隨機數,並且每次單擊該按鈕時它都會呈現一個隨機數。所以這意味着通話起作用。但是我無法將文本輸入(sgd/singaporean dollar)傳遞給後臺bean並進行正確的轉換。

這是怎麼回事?

回答

0

好的,我修好了。我使用@RequestScoped而不是@Dependent

我不知道我在做什麼,但它的工作原理。

現在結果是我想要的,轉換髮生在用戶界面上,當我點擊按鈕。

+0

_「我不知道我在做什麼,但它有效。」然後從閱讀一些很好的基礎教程開始 – Kukeltje