在轮播中更新JSF

时间:2013-10-10 14:18:42

标签: jsf primefaces

我目前正在尝试实现一个网站,其中从旋转木马打开的对话框会更改数据库中的内容,结果会显示在屏幕上。为此,我尝试更新对话框中的区域。不幸的是,更新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>

单击Increment后没有调用函数pagebean.value,但是当我点击Increment时会调用pagebean的构造函数。因此,旋转木马似乎无法更新其中的内容。

有没有人知道,是否有可能更新旋转木马中的某些内容,或者是否有针对此问题的解决方法?

编辑:在下面的讨论之后,我知道如果相应bean的范围设置为@ViewScoped,Increment确实有效。我也可以通过给它一个widgetVar并访问它的click函数来触发这个按钮,这样就行了。不幸的是,我想使用的Bean是SessionScoped,并且使用这种视图它不起作用。有人提示如何解决这个问题?我可以将所有内容复制到第二个Bean,这是ViewScoped,但这不是一个非常好的解决方案。

0 个答案:

没有答案