【发布时间】:2017-04-01 01:49:38
【问题描述】:
这是我在 JSF 中的 UI 代码。该应用程序是从新加坡元到日元的小额货币转换。
<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,改变backing bean中的sgd属性,然后通过之前计算新加坡元到日元的转换来渲染outputText。
但是输入没有传递给支持 bean。
我确实尝试过一些事情,比如让getJpy() 每次被调用时都返回一个随机数,并且每次我点击按钮时它都会呈现一个随机数。所以这意味着调用有效。但我无法将文本输入(新加坡元/新加坡元)传递给支持 bean 并进行正确的转换。
这里发生了什么?
【问题讨论】: