【问题标题】:JSF keep text value in inputtextJSF 在 inputtext 中保留文本值
【发布时间】:2013-09-11 11:41:16
【问题描述】:

我有一个纯文本输入字段。当我输入一个值并提交时,输入字段被清除。无论如何,提交时可以保留在字段中输入的文本吗?很难解释,但我并不是说将值存储在 bean 中,而是将文本本身保存在字段中。

我的输入代码:

<h:inputText id="description" 
             value="#{timeLoggingDetailController.selected.description}" 
             title="#{bundle.CreateTimeLoggingDetailTitle_description}" 
             size="18" />

当我填写该字段时:

我提交后:

我想在提交后将文本保留在字段中:

【问题讨论】:

  • 我不明白这个问题。是否要保留 inputText 中的值?
  • 我正在存储值是,让我更改我的问题,在我页面上的字段中输入单词“TEST”,当我提交时清除该字段,我想要单词“TEST”留在该字段中,以便当我再次提交时,它会再次提交单词“TEST”。
  • IIRC,下一个显示的值确实从 bean 返回...您必须在显示端使用一些 ECMAscript 覆盖它,或者使用更大范围的 bean(会话?)保持价值。
  • 请以 SSCCE 风格编辑并发布问题。目前提供的信息中没有显示问题的原因。

标签: jsf


【解决方案1】:

尝试使用

@ViewScoped

它会保留数据

【讨论】:

    【解决方案2】:

    在不使用 bean(例如@SessionScoped)的情况下提交表单后,您无法保留 inputText 值,因为每次点击链接或按钮时,都会(重新)创建 JSF 组件树/restored 和组件树中的每个组件extracts its new value from the request parameters

    因此,如果您想在提交表单之前获取您输入的值,您需要将其作为属性值存储在托管 bean 中。

    【讨论】:

    • 有道理,谢谢。会整理好的
    • 这个答案没有任何意义并且包含虚假信息。默认情况下,JSF 已经保留了输入,即使使用请求范围的 bean 或什至没有任何 bean。 OP的具体问题是在其他地方引起的。也许 OP 错误地重新初始化了 selected 属性,或者在提交后发送了重定向。这个答案被两次投票实际上是非常可悲的,因为它表明了普通 JSF 用户的愚蠢。请在发布之前在真正的运行时环境中测试您自己的答案。
    猜你喜欢
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2013-07-25
    相关资源
    最近更新 更多