PrimeFaces <p:tabView> 在 Wildfly 中使用动态=“true”中断 <p:ajax> – JBoss EAP 正在工作

问题描述 投票:0回答:1

我们有一个复杂的 Web 应用程序,通常通过 RedHat JBoss EAP 7.4 提供服务,我们尝试将其与 Wildfly 26.1.3 一起使用(最后一个在 javax → jakarta 之前)。对于 UI,我们使用 Primefaces 13.0.8(最新)。

一个相当简单的用户界面,带有选项卡视图和一些动态内容失败Wildfly,我仍在寻找解决方案。相同的 UI 适用于我们的 EAP 安装。

这是精简版:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
            xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
            xmlns:h="http://xmlns.jcp.org/jsf/html"
            xmlns:p="http://primefaces.org/ui"
            template="/WEB-INF/templates/minimal.xhtml">

<ui:define name="body">

    <h:form>
        <p:tabView dynamic="true" cache="false">
            <p:tab title="Tab 1">
                <h:inputText>
                    <p:ajax event="keyup" update="time" />
                </h:inputText>
                <h:outputText value="#{developer.timestamp}" id="time" />
            </p:tab>
            <p:tab title="Tab 2">
                Content
            </p:tab>
        </p:tabView>
    </h:form>

</ui:define>
</ui:composition>

相关部分是

<p:tabView dynamic="true" cache="false">
,我们在整个 UI 中使用它,以允许复杂的选项卡视图在需要时快速呈现,而不是更早。

在上面的示例中,到目前为止,UI 无法与 Wildfly 一起工作(更新)。但是,如果我只是从

dynamic="true"
更改为
dynamic="false"
,它就会开始工作。

这是一个小 GIF,展示了如果我输入一些数据将会发生什么。 右侧的时间戳应该更新。 使用

dynamic="true"
不起作用。

我错过了什么?我不知道...

更新

这似乎与部分状态保存有关。请参阅 https://github.com/da3x/PARTIAL_STATE_SAVING 了解可重现的最小示例。

ajax jsf primefaces
1个回答
0
投票

好吧,这是 Mojarra 的 bug。当我从 Wildfly 切换到独立 Jetty 时,我可以使用 Mojarra 2.3.17 重现该问题,但已在 2.3.18+ 中修复。

因此,如果您可以将 Wildfly Mojarra JAR 更换到最新的 2.3.21,则应该可以修复该问题。

© www.soinside.com 2019 - 2024. All rights reserved.