2

次のような複合コンポーネントに ah:graphicImage があります。

<composite:interface>
    <composite:attribute name="name" required="true" type="java.lang.String" />
    <composite:attribute name="alt" required="false" type="java.lang.String" />
    <composite:attribute name="height" required="false" type="java.lang.String" />
    <composite:attribute name="width" required="false" type="java.lang.String" />
</composite:interface>

<composite:implementation>

    <h:graphicImage url="something-common#{cc.attrs.name}"
                alt="#{cc.attrs.alt}"
                height="#{cc.attrs.height}"
                width="#{cc.attrs.width}" />

</composite:implementation>

これは機能しますが、一部の属性 (幅、高さなど) が設定されていない場合、それらは空にレンダリングされます。win7 の IE9 では、これにより img タグの幅と高さの属性が 1 としてレンダリングされます。したがって、画像の幅は 1 ピクセル、高さは 1 ピクセルになります。

4

1 に答える 1

3

を介して条件付きで属性を追加できます<c:if><f:attribute>

<h:graphicImage ...>
    <c:if test="#{not empty cc.attrs.height}"><f:attribute name="height" value="#{cc.attrs.height}" /></c:if>
    <c:if test="#{not empty cc.attrs.width}"><f:attribute name="width" value="#{cc.attrs.width}" /></c:if>
</h:graphicImage>

以下も参照してください。

于 2015-11-02T10:07:42.737 に答える