2011-04-21 30 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