2

Primefacesカルーセルコンポーネントを使用して、アイテムのリストを表示します。私がやりたいのは、すべてのカルーセルアイテムにcommandButtonを表示して、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>
4

1 に答える 1

4

ここで 2 つの問題が発生する可能性があります。

  1. これprocess="@this"は、カルーセル コンポーネントの変更ではなく、commandButton の呼び出しアクションのプロセスのみを呼び出すため、問題になる可能性があります。この属性をresourceCarouselorに設定してみてください@form

  2. setPropertyActionListenerまだ問題があり、JSF 2 + EL 2.2 を使用している場合は、管理プロパティの値の設定に依存する代わりに、EL 式を介してメソッドに引数varを渡すことができます。actionListener

次に例を示します。

<p:commandButton value="confirm" actionListener="${resourceRatingBean.confirmResourceListener(var)}"
    this="resourceCarousel" />
于 2012-07-31T11:07:45.343 に答える