【问题标题】:a4j:support after h:inputText value change doesn't worka4j:h:inputText 值更改后的支持不起作用
【发布时间】:2011-04-21 12:08:23
【问题描述】:

谁能弄清楚为什么在 inputText 值更改后h:outputText 没有被刷新? onkeyuponchange 我都试过了,都没有影响..

当我做一些其他的事情来刷新页面时,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}"/>

谢谢!!

【问题讨论】:

    标签: jsf ajax4jsf


    【解决方案1】:

    除了 Cristian 提到的将ajaxSingle="true" 替换为a4j:support 之外,JSF 渲染的 HTML 代码中的 id 属性可能与您在 &lt;h:outputText&gt; 中设置的 ID 值不同。 Richfaces 提供了一个函数rich:clientId('id') 来获取这些JSF 生成的动态ID。该函数通过 EL 表达式调用。

    所以,你可以试试:

    &lt;a4j:support event="onkeyup" ajaxSingle="true" reRender="#{rich:clientId('domainNameSlash')}"/&gt;

    【讨论】:

      【解决方案2】:

      您必须将 inputText 的值发送到支持 bean,以便 outputText 反映更改,因此您应该输入:ajaxSingle="true" for a4j:support

      &lt;a4j:support event="onkeyup" ajaxSingle="true" reRender="domainNameSlash"/&gt;

      【讨论】:

      • 感谢@Cristian,我可以看到验证现在已经运行,所以这是一个进步,但 h:outputText 仍然没有重新渲染......
      • 我相信这听起来有点傻,但请确保它通过了验证。否则 bean 将没有新值。如果它仍然不起作用,您可以将所有这些代码放在a4j:forma4j:region 中吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      相关资源
      最近更新 更多