我在 JSF 中有一个 inputText 对象,比方说 inputText_A,并且该值绑定(bind)到 session Bean 对象的成员变量。它是 double 型的一种。
<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。我可以知道这可以做到吗?
最佳答案
通过 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;
}
还有你的facelet (.xhtml):
<h:inputText value="#{dummyBean.text}" />
<h:commandButton value="Change text" actionListener="#{dummyBean.changeText}" />
您的inputText
将在单击按钮时更新。
另一件事是您是否通过 Ajax 更新内容。然后你需要重新渲染inputText
的父组件
或inputText
的form
:
<h:commandButton immediate="true" value="Change text">
<f:ajax event="click" render=":formID" listener="#{dummyBean.changeText}"/>
</h:commandButton>
关于java - 如何将值从 session bean 传递到 JSF inputText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153698/