微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jsf-2 – 当需要=“true”时,Ajax事件永远不会触发

在我使用的PrimeFaces中:

<p:inputText required="true"
             requiredMessage="message"
             value="#{backingBean.value}">

<p:ajax event="focus"
        update="infoText"
        listener="#{backingBean.something()}" />

</p:inputText>

Ajax事件永远不会被触发.
但是,如果我删除required =“true”,一切正常,事件就会触发.

任何人都可以告诉我如何使用p:inputText与p:ajax和required =“true”?

解决方法

这可能是因为当您获得焦点到文本字段时,会发生ajax事件,该事件会回发页面上组件的ViewState.

当它执行此操作时,它尝试将文本字段的当前值设置为空的#{backingBean.value},从而导致抛出ValidatorException.由于发生此验证错误,因此永远不会触发操作事件#{backingBean.something()}.

尝试将属性immediate =“true”添加到< p:ajax>标记并查看是否允许事件在验证阶段之前触发.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐