2010-07-05 123 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