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