gpt4 book ai didi

jsf - Primefaces commandButton 仅适用于轮播组件的第一个条目

转载 作者:行者123 更新时间:2023-12-04 18:15:53 25 4
gpt4 key购买 nike

我使用 Primefaces 轮播组件来显示项目列表。我想做的是在每个轮播项目上显示一个命令按钮,它会触发 bean 上的方法来确认或拒绝条目。

现在它只适用于轮播的第一个条目。单击另一个条目不会调用操作 confirmResource。我想这与ID有关,但我无法弄清楚。

这是表格:

<h:form id="form" prependId="false">
<p:carousel id="resourceCarousel" value="#{resourceRatingBean.resourceProposalList}" var="var" rows="1" itemStyle="width:500px; height: 400px; text-align:center;" circular="true">
<p:column>

<h:panelGrid columns="1" cellpadding="3">
<p:graphicImage value="/cache/images/#{var.imagePath}" width="100"/>
<h:outputText value="#{var.imagePath}" />
<h:outputText value="#{var.name}" />
<h:outputText value="#{var.description}" />
</h:panelGrid>

<p:commandButton value="confirm" action="#{resourceRatingBean.confirmResource}" process="@this">
<f:setPropertyActionListener value="#{var}" target="#{resourceRatingBean.ratedResource}" />
</p:commandButton>

</p:column>
</p:carousel>
</h:form>

最佳答案

我在这里看到两个可能的问题:

  • process="@this"可能是一个问题,因为这只会调用命令按钮的调用操作过程,而不是轮播组件中的更改。尝试将此属性设置为 resourceCarousel@form反而。
  • 如果您仍然遇到问题并使用 JSF 2 + EL 2.2,那么不要依赖 setPropertyActionListener设置托管属性的值,然后您可以传递参数 varactionListener通过 EL 表达式的方法。

  • 这是一个例子:
    <p:commandButton value="confirm" actionListener="${resourceRatingBean.confirmResourceListener(var)}"
    this="resourceCarousel" />

    关于jsf - Primefaces commandButton 仅适用于轮播组件的第一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11734906/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com