2017-04-01 128 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