P:旋转木马内的命令



为什么下面有效:

<h:form id="form1">
<p:carousel id="carousel" value="#{galleriaBean.paths_tn}" var="img" itemStyle="width: 200px">
<p:graphicImage value="#{img}"/>
</p:carousel>
<p:commandLink id="here" value="click me" update="hello11" oncomplete="dlg.show()">
<f:setPropertyActionListener value="hello!!!" target="#{galleriaBean.selected}"/>
</p:commandLink>
<p:dialog widgetVar="dlg">
<h:outputText id="hello11" value="#{galleriaBean.selected}"/>
</p:dialog>
</h:form>

但是将命令链接移动到轮播中,它不起作用?setPropertyActionListener 甚至没有在 bean 中设置变量。

@RequestScoped CDI Bean。

<p:carousel id="carousel" value="#{galleriaBean.paths_tn}" var="img" itemStyle="width: 200px">
<p:graphicImage value="#{img}"/>
<p:commandLink id="here" value="click me" update=":form1:hello11" oncomplete="dlg.show()">
<f:setPropertyActionListener value="#{img}" target="#{galleriaBean.selected}"/>
</p:commandLink>
</p:carousel>

您没有显示代码的第二个版本(当您将p:commandLink放入p:carousel 中时),但我想您将支持 bean 的一些属性放入p:commandLink的属性value .您必须知道 AJAX 请求也是请求,因此在每个 AJAX 请求中重新创建作用域 Bean。要保留属性的状态(您正在使用f:setPropertyActionListener您必须使 bean 至少具有视图作用域,或者以某种方式在@PostConstructor方法中保留状态。如果可以使用视图作用域 Bean,则应执行此操作。

相关内容

  • 没有找到相关文章

最新更新