【问题标题】:Default value for h:inputTexth:inputText 的默认值
【发布时间】:2010-07-05 14:28:19
【问题描述】:

想象一个文本框,绑定到 ManagedBean:

<h:inputText id="name" value="#{mb.name}"/>

我想将该字段默认为一个值。

我知道我可以在构建时设置 ManagedBean 中的值,但这对我不起作用,因为我在不同的 xhtml 页面中使用相同的 ManagedBean 作为支持 bean。而且我不希望在所有这些页面中初始化“名称”字段。

有人可以提出一个策略吗?还是我错过了一些重要的东西?

非常感谢! J.

【问题讨论】:

  • 使用 JSF Converter 将值从 long、int、double ...等转换为 Wrapper 数据类型 Long、Integer

标签: jsf jsf-2


【解决方案1】:
  • 您可以使用 javascript (document.getElementById("formName:textName").value = 'defaultValue';. 可能在document.onload上填写值

  • 您可以对托管 bean 进行子类化,并在默认构造函数或 @PostConstruct 方法中填充默认值,然后使用子类化 bean。

【讨论】:

  • 谢谢博卓。 JavaScript 答案可以解决问题!我不认为替代方案(@PostConstruct)对我有用。我正在使用 viewparams 并且由于涉及名称匹配,从视图中的 bean 名称需要等于 to-view 中的 bean 名称。但是,您认为我可以通过检查一些上下文对象来检测调用 *.xhtml 页面的名称吗?我使用调试器探索了 FacesContext,但我找不到从 Request 对象中获取 from-view 的类型安全方法。无论如何,这种方法看起来不像 JavaScript 那样干净。只是好奇。 ;-) 谢谢。 J.
  • 您可以使用getViewRoot().getViewId()。顺便说一句,如果答案对您有用 - 将其标记为已接受(在投票计数器下方打勾)
猜你喜欢
  • 2011-11-21
  • 2018-09-12
  • 2019-07-05
  • 2015-05-22
  • 2011-07-25
  • 2011-02-24
  • 2011-01-24
  • 1970-01-01
  • 2013-12-25
相关资源
最近更新 更多