如何将会话bean中的值传递给JSF inputText?

时间:2012-04-14 12:40:26

标签: java jsf

我在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。我可以知道可以这样做吗?

1 个答案:

答案 0 :(得分:2)

通过h:inputText显示一些更新的值是完全正确的(如果您需要这样的功能)。您只需要为bean变量设置适当的gettersetter

例如:

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