2012-05-24 33 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