2012-05-24 35 views
1

我遇到以下問題,無法在任何地方找到解決方案。如何在jsf中訪問inputtext綁定

我有以下代碼:

<h:inputText id="username" value="#{registrationBB.userName}" binding="#{userNameToConfirm}"/> 

和稍後:

<h:inputSecret id="confirmed-password" value="#{registrationBB.userPasswordConfirmed}"> 
    <f:validator validatorId="usernameNotInPasswordValidator"/> 
    <f:attribute name="username" value="#{userNameToConfirm.value}" /> 
</h:inputSecret> 

的inputText的綁定到#{userNameToConfirm}(這是不以任何backingbean一個屬性)和後面綁定在密碼驗證器中使用。

這一切都很好。

但是,形式,這些字段上包含一個「重置」按鈕,應該清空表單上的所有字段。

當復位按鈕clicket,在registrationBB所有屬性都清空,下面的代碼被稱爲:

getViewRoot().getChildren().clear(); 

但是,用戶名永遠是空的,因爲它總是由值來設置在「#userNameToConfirm」綁定中。

我的問題是:我怎樣才能訪問這個綁定和在後臺刪除臉?

我們使用jsf 1.2版。

問候, 阿拉什

回答

0

讓復位按鈕重新加載頁面來代替。

<h:commandButton value="Reset" onclick="location.reload(true)" /> 

或用<redirect>一個<navigation-case>

<h:commandButton value="Reset" action="reloadPagename" /> 

<navigation-rule> 
    <navigation-case> 
     <from-outcome>reloadPagename</from-outcome> 
     <to-view-id>/pagename.jsf</to-view-id> 
     <redirect /> 
    </navigation-case> 
</navigation-rule> 
+0

BalusC嗨!感謝您的解決方案。一如既往非常有幫助:)作爲一個側面問題,我只想知道如何訪問像「userNameToConfirm」綁定這樣的綁定值。有沒有辦法?或者從服務器端這是不可能的? –

+0

你可以做一個'userNameToConfirm.resetValue()'。但有更簡單的解決方案刷新頁面:) – BalusC