1

<f:param>つまり、ajax 呼び出し中のmenuItemIndex値を取得しています。nullに付いているからでしょう<h:graphicImage>か??? 誰でも提案できますか?<h:commandLink>注:の代わりに使用すると、パラメーターが渡され<h:graphicImage>ます。

 <c:forEach items="#{cc.attrs.value}" var="menuItem" varStatus="loopItem">
 ....
    <ui:fragment rendered="#{menuItem.hasChildren}">
        <h:graphicImage library="images" name="#{menuItem.symbol}">
           <f:ajax render=":fatcaForm:myMenu:menuID" event="click" listener="#{menuBean.refreshMenu}" />
           <f:param name="menuItemIndex" value="{loopItem.count}" />
        </h:graphicImage>
    </ui:fragment>
  ....
 </c:forEach>
4

1 に答える 1

1

<h:graphicImage>コマンド コンポーネントではないため、<f:param>子をまったくサポートしません。は、自分で見つけたように、コンポーネント<f:param>にネストされている場合にのみ機能します。UICommand<h:commandLink>

したがって、これは次のようにする必要があります。

<h:commandLink action="#{menuBean.refreshMenu}">
    <h:graphicImage library="images" name="#{menuItem.symbol}" />
    <f:ajax render=":fatcaForm:myMenu:menuID" />
    <f:param name="menuItemIndex" value="#{loopItem.count}" />
</h:commandLink>

(EL構文エラーも修正したことに注意してください<f:param value>


具体的な問題とは関係なく、 の使用方法<h:graphicImage library>は完全に正しくありません。JSF リソース ライブラリの目的と使用方法をよくお読みください。

于 2012-12-18T19:44:34.043 に答える