0

我目前尝试实现一个网站,从轮播中打开一个对话框,更改数据库中的某些内容,结果显示在屏幕上。为此,我尝试更新对话框中的一个区域。不幸的是,在 carusell 中更新东西似乎不起作用。

我将代码缩短为一个最小的示例,因此使用以下代码:

<p:carousel id="page" value="#{pagebean.pages}"
    var="item" numVisible="1">
    <h:form id="dlg_2_form">
        <h:outputText id="test_2" value="#{pagebean.value}" />
        <p:remoteCommand name="update_2" update="test_2" />
        <a href="#" onclick="update_2();"> Increment</a>
    </h:form>
</p:carousel>

pagebean.value单击 Increment 后不会调用该函数,但因此pagebean单击 Increment 时会调用 的构造函数。因此,轮播似乎无法更新其中的某些内容。

有谁知道,是否有可能更新轮播中的某些内容,或者是否有解决此问题的方法?

编辑:经过下面的讨论,我知道如果相应 bean 的范围设置为 @ViewScoped,增量确实有效。我也可以通过给它一个 widgetVar 并访问它的点击功能来触发这个按钮,所以这会起作用。不幸的是,我要使用的 Bean 是 SessionScoped,用这种视图它不起作用。有没有人提示如何解决这个问题?我可以将所有内容复制到第二个 Bean 中,即 ViewScoped,但这不是一个很好的解决方案。

4

0 回答 0