这是我在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>
这是我的支持豆:
@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)传递给支持bean并进行正确的转换。
这里发生了什么?
答案 0 :(得分:0)
好的,我修好了。
我使用@RequestScoped
代替@Dependent
。
我不知道我在做什么,但它确实有效。
现在结果就是我想要的,当我点击按钮时,转换会在UI上进行。