2010-07-05 70 views
1

试想一个文本框,绑定到ManagedBean:默认值:inputText的

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

我想字段默认的值。

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

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

非常感谢! J.

回答

7
  • 您可以用JavaScript填充值(document.getElementById("formName:textName").value = 'defaultValue';。也许在document.onload

  • 你也可以继承你的托管bean,并填写默认的构造函数的默认值,或在@PostConstruct方法,并使用子类的bean。

+0

Thx Bozho。 JavaScript的答案是诀窍! 我不认为替代方案(@PostConstruct)适合我。我使用viewparams,并且因为涉及名称匹配,所以从视图中的bean名称需要等于要查看的bean名称。 但是,您认为我可以通过检查某个上下文对象来检测调用* .xhtml页面的名称吗?我使用调试器探索了FacesContext,但是我找不到从Request对象获取视图的类型安全方式。无论如何,这种方法看起来并不像JavaScript那样干净。只是好奇。 ;-) Thx。 J. – Jan 2010-07-05 15:39:08

+0

您可以使用'getViewRoot()。getViewId()'。顺便说一句,如果答案适合你 - 将其标记为已接受(在投票柜台下面打勾) – Bozho 2010-07-05 15:48:20

0

使用JSF转换的值从长,转换为int,双。 ..等到包装数据类型 Long,Integer