Ajax 事件从 6.2 到 7.0 的 Primeface 迁移问题

primeface migration problem with ajax events from 6.2 to 7.0

提问人:amine kacem 提问时间:12/15/2021 最后编辑:amine kacem 更新时间:12/22/2021 访问量:245

问:

你好,请我需要帮助;我的网页中有一个工作模拟,其中包含一些带有 Bean 方法的按钮,这些按钮工作正常,并使用 p:componenet_id 更新页面中的一些组件,并且在 6.2 中也工作正常,直到我升级到 primeface 7.0 现在,当我单击相同的按钮时,它所做的就是刷新表单 并跳过任何名为 的 Bean 方法;

主要问题:现在每当我尝试使用 commandlink 或单选按钮时,ajax 都会刷新我的页面,它们都使用 ajax 标签或更新和处理通过其 ID 定位其他组件以及调用一些后备 bean 方法!

Ajax JSF primefaces XHTML

评论

1赞 tandraschko 12/15/2021
p:组件仍然存在,它在 8.0 中删除了: primefaces.github.io/primefaces/11_0_0/#/../migrationguide/8_0
0赞 amine kacem 12/15/2021
好的,太好了,所以至少我现在仍然可以使用 p:component 语法,但我的问题仍然存在,即每次单击命令时,表单都会刷新,所有表单以及它在那里使用的后备 Bean 中重新执行 java 代码,同时跳过单击按钮的主要操作!:(
0赞 MD. RAKIB HASAN 12/22/2021
请编辑问题,将其限制在特定问题上,并具有足够的细节以确定适当的答案。
0赞 amine kacem 12/22/2021
@MD.RAKIBHASAN 完成 ;谢谢建议;我希望我能找到这个阻塞问题的解决方案

答:

0赞 amine kacem 12/16/2021 #1

更新:所以我发现 p:componenet('ID_comp') 在 primefaces 7.0 中仍然受支持,但在 8.0 中将被删除 所以现在我仍然在 7.0 中,我确信 p:componenet('ID_comp') 不是做出非预期行为的人; 但是我正在使用 PrimeFaces 扩展 JAR 版本 7.0.2 和 PrimeFaces JAR 7.0,除了此页面外,该项目似乎工作正常

我注意到的另一件事是,当我在该命令链接上编写 ajax=“false” 时,它什么也没做;在 bean 或接口中不执行任何内容;当然,ajax=“true ” 再次出现同样的意外行为。

现在的主要问题是,虽然我在 xhtml 中的代码仍然相同;ajax 是做出非预期行为的那个,这使得 actionListener 根本不执行。 以下是不起作用和当前 Senario 的代码示例:

  <p:commandLink value="Search" process="@this" actionListener="#{bean.newPerson(true)}" rendered="#{empty bean.offre.id and !disabled}"
                                       update=":#{p:component('panelPerson')} :#{p:component('toolbar_person')}" type="button"   >
                            <p:resetInput target="panelPerson" />
                        </p:commandLink> 

所以这应该做的是打开一个用于搜索一个人的输入并清空表单中的所有输入,同时执行函数 bean.newPerson(true),但事实并非如此;在 7.0 版中,尽管我从未更改过该代码;它现在所做的就是刷新孔表单,跳过 bean.newPerson(true) 并执行初始化页面的 bean 方法(只应在页面操作时执行),它还会重置所有输入。 是与ajax有关还是与动作有关,监听器不再起作用??或者 6.2 和 7.0 之间的变化究竟是什么,而它是相同的代码。

注意:窗体中几乎每个带有 actionlistener 的按钮(commandlinks 和 radio button)也会发生这种情况;总是重新执行 bean.init 并重置所有表单,就好像我重新加载了 hole 页面一样。

评论

0赞 amine kacem 12/27/2021
嗨,又来了 ;2 周后,问题仍然存在 7.0 我无法修复它。