2011-04-21 47 views
0

任何人都可以弄清楚爲什麼h:outputText在inputText值更改後沒有刷新? 我都試過onkeyuponchange兩者不影響..a4j:支持h:inputText值更改後不起作用

當我這樣做,使頁面刷新一些其他的東西,h:outputText正確渲染所以纔得到了ajax實際重新呈現的問題組件。

<h:inputText autocomplete="off" styleClass="propertyInput" 
    value="#{activesyncDM.userNameDomain}" validator="#{activesyncDM.validate}" 
    id="userNameDomain" dir="ltr"> 
    <a4j:support event="onkeyup" reRender="domainNameSlash"/> 
</h:inputText> 
<h:outputText id="domainNameSlash" value="\\" rendered="#{!empty activesyncDM.userNameDomain}"/> 

謝謝!!

回答

4

除了把ajaxSingle="true"針對受提到a4j:support Cristian,JSF呈現的HTML代碼中的id屬性可能與您在<h:outputText>中設置的ID值不同。 Richfaces提供了一個函數rich:clientId('id')來獲取由JSF生成的這些動態ID。這個函數是通過EL表達式調用的。

所以,你可以嘗試:

<a4j:support event="onkeyup" ajaxSingle="true" reRender="#{rich:clientId('domainNameSlash')}"/>

3

你要的inputText的值發送到後臺bean,以便我們將outputText以反映更改,所以你應該把:ajaxSingle="true"a4j:support

<a4j:support event="onkeyup" ajaxSingle="true" reRender="domainNameSlash"/>

+0

感謝@Cristian,我可以看到,驗證現在運行所以這是向前邁進了一步,但H:的outputText仍然沒有得到重新呈現...... – Ben 2011-04-21 12:30:44

+0

我相信這聽起來有點傻,但請確保它通過驗證。否則,這個bean將不會有新的值。如果它仍然不起作用,你可以把所有這些代碼放在'a4j:form'或'a4j:region'中嗎? – 2011-04-21 12:32:15