0

現在、複合コンポーネントで次のようなものを使用して、リソースへの EL 参照を作成しています。

<composite:implementation>

    <ui:param name="resourceName" value="images:#{cc.resourceName}" />

    <h:commandButton id="button" image="#{resource[resourceName]}" />

</composite:implementation>

ご覧のとおり、コンポーネント クラスで名前がui:param付けられたメソッドを参照します。getResourceName()このメソッドは、ロードするリソースを決定します。

ui:param次のような、すべてが不要なソリューションが必要です。

<composite:implementation>

    <h:commandButton id="button" image="#{cc.resource}" />

</composite:implementation>

現在、これが可能かどうかさえわかりません。

何か案は?

Thx、DS

4

1 に答える 1

0

JSF が提供する Resource API を使用したくない場合は、コンテキストの相対 URL を画像に渡すだけで済みます。

例えば:

これがカスタム コンポーネントの場合:

<util:mbt actionMethod="#{bean.show}" resourceName="#{bean.img}" />

次のように変更します。

<util:mbt actionMethod="#{bean.show}" resource="#{bean.img}" />

ここで、bean.getImg() は文字列を返します"/resources/images/test.jpg"

または、次のようにコンポーネントを追加するときにリソース API を使用します。

<ui:param name="resourceName" value="images:#{bean.img}" />
<util:mbt actionMethod="#{bean.show}" resource="#{resource[resourceName]}" />

次のように使用します。

<composite:implementation>

  .....

  <h:commandButton id="button" action="#{cc.attrs.actionMethod}" image="#{cc.attrs.resource}" />

  .....
</composite:implementation>

その疑問は今でも私の心に残っています。"しかし、なぜ?"

于 2012-08-04T17:59:18.880 に答える