0

重複の可能性:
c:forEach タグ内のパラメーターを ui:include に渡す方法

これ ( Managed Bean フィールドを ui:param の値に設定するにはどうすればよいですか? ) はうまく機能しています。JST c:forEach を使用して ui:include をループしている場合、Facelet 属性 (ui:param) は常に null に解決されます。

<c:forEach items="#{myList} var="myItem">
    <ui:include src="#{myItem.myPage}">
        <ui:param name="myVar" value="#{myItem.myData}"/>
    </ui:include>   
</c:forEach>

そして、JSFマネージドBean内のFacelet属性を解決しようとしています(これは、JSFビューごとに正確に1つのui:include専用です)

FacesContext facesCtx = FacesContext.getCurrentInstance();
FaceletContext faceletCtx = (FaceletContext) facesCtx.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
Object myVar = faceletCtx.getAttribute("myVar");

(c:forEachなしで)ループしていない限り、このアプローチはうまく機能します。しかし、c:forEach myVar を導入すると、常に null になります。

JSTL c:forEach は facelet 属性 (名前) で何を変更しますか? Backing Bean でそれらにアクセスするにはどうすればよいですか?

残念ながら、FaceletContext はすべての facelet 属性を一覧表示するメソッドを公開していないため、自分でそれらを「見つける」ことができます ... :S

4

1 に答える 1

1

c:forEachJSFで使用することはできません。そのため、<ui:repeat>基本的に同じことを行うが、JSF コンポーネント ツリーの一部です。ここでの例の詳細な説明

于 2012-07-02T06:13:09.503 に答える