我在JSF中有一个inputText对象,比如inputText_A,该值绑定到会话Bean对象的成员变量。这是一种双重的。
<h:inputText value="#{theBean.theMemberVar}" />
此inputText_A已初始化为0.0。当theBean执行计算时,该值将更新回theBean.theMemberVar。我已在调试控制台中追溯它,并且值已更新为我的预期值。但是屏幕上的inputText_A仍显示原始值,即0.0。
我已经使用outputText进行了测试,我的预期输出显示在那里,但之后它在屏幕上变为只读。我希望它在我的预期输出填充到inputText_A后可编辑,因此我选择inputText对象。
我理解当我们将一些值从JSF传递给Bean时,我们使用inputText,当一些值从Bean传递给JSF时,我们使用outputText。但是现在我想使用inputText将Bean的值传递给JSF。我可以知道可以这样做吗?
答案 0 :(得分:2)
通过h:inputText
显示一些更新的值是完全正确的(如果您需要这样的功能)。您只需要为bean变量设置适当的getter
和setter
。
例如:
private String text;
// here you will update the input text - in your case method which does calculations
public void changeText(){
...
text = "updated";
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
你的小脸(.xhtml):
<h:inputText value="#{dummyBean.text}" />
<h:commandButton value="Change text" actionListener="#{dummyBean.changeText}" />
点击按钮后,您的inputText
会更新。
其他方面是您通过Ajax更新内容。然后,您需要重新呈现parent component
的{{1}}或inputText
的{{1}}:
form