java - 如何将值从 session bean 传递到 JSF inputText?

标签 java jsf

我在 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 变量提供适当的 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;
    }

还有你的facelet (.xhtml):

        <h:inputText value="#{dummyBean.text}" />
        <h:commandButton value="Change text" actionListener="#{dummyBean.changeText}" />

您的inputText将在单击按钮时更新。

另一件事是您是否通过 Ajax 更新内容。然后你需要重新渲染inputText父组件inputTextform:

    <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/

相关文章:

java - SurfaceView -> Surface 没有有效的 native 窗口 | Android 相机 API |硬件.camera2

Spring 异步任务 : update jsf view component

java - 如何在 Java EE 中运行并行进程

java - 从抽象语法树中获取控制流图

java - 选择值时无法更新 JTable 中的 JComboBox

java - 无法将 Eclipse RCP 应用程序导出为产品

jsf - 读取 JSF Web 应用程序静态代码中的 .properties 文件

java - 根据资源包 key 的存在有条件地显示 HTML block

jsf - Primefaces 依赖 selectOneMenu 且必需 ="true"

java - Java TableRowSorter 中的 NullPointerException