【问题标题】:How to stop the user in entering text for h:inputText?如何阻止用户为 h:inputText 输入文本?
【发布时间】:2011-03-05 00:11:07
【问题描述】:

我正在使用 JSF 1.2 - 我的面孔实现。我有一个表单,我使用 h:inputText 来显示几个值。有 2 个输入框不应编辑,但应显示给用户,并应在单击提交时提交给服务器。我试过 readonly="true" 和 disabled="true",都没有解决目的!有什么建议吗?

【问题讨论】:

    标签: jsf


    【解决方案1】:

    readonly="true" 应该符合您的要求。文本将不可编辑,值将提交给服务器。

    disabled="true" 不符合您的要求。该文本确实是不可编辑的,但该值不会提交给服务器。

    请注意,当您使用它们两者时,则根本不会提交该值。此外,当它或其父属性之一在表单提交期间评估为 false 时,在表单提交请求的应用请求值阶段不会收集该值。

    【讨论】:

    • 感谢 BalusC。 readonly="true" 不起作用。 disabled="true" 有效。请编辑,我将其标记为正确。
    • 不,只读应该满足您的要求。您是否没有使用一些 bean 属性来处理应该在后续请求中保留的内容?例如。 readonly="#{bean.readonly}"?如果是这样,你就知道答案了。如果没有,那么您需要更详细地说明“不起作用”。从开发者的角度来解释它,而不是从最终用户的角度来解释。
    • 我是这样使用的,并且现在没有提交值!!!
    • 我试过你建议在 Bean 中默认 readOnly 为 true。它没有帮助。仅供参考,我在前端使用 Javascript 填充这些字段的值,当填充在屏幕中时我可以看到它们,但在调试 JSF 生命周期阶段-sysouts(INVOKE APPLICATION)中,我不能!怎么了?
    • 我无法成功使用其中任何一个。现在,我有相应的 hiddenInput 并将非隐藏设置为 readonly="true" ,这样我就可以在服务器端获取值并且不允许用户编辑。
    【解决方案2】:

    实际上,readonly = "true" 不会向服务器提交值,我建议readonly= "#{facesContext.renderResponse}",它对我很有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2013-09-29
      相关资源
      最近更新 更多