0

次のコードを使用してJSFで画像のURLを生成したい...

<c:choose>
    <c:when test="#{cc.attrs.index == 0}">
        <c:set var="image" value="image.png" />
    </c:when>
    <c:otherwise>
        <c:set var="image" value="image1.png" />
    </c:otherwise>
</c:choose>

<img src="#{image}" />

しかし、これを実行すると、NumberFormatExceptionが発生します。

java.lang.NumberFormatException: For input string: "image.png"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
    at java.lang.Double.valueOf(Double.java:504)
    at com.sun.el.lang.ELArithmetic$DoubleDelegate.coerce(ELArithmetic.java:148)
    at com.sun.el.lang.ELArithmetic.coerce(ELArithmetic.java:373)
    at com.sun.el.lang.ELArithmetic.add(ELArithmetic.java:254)
    at com.sun.el.parser.AstPlus.getValue(AstPlus.java:57)
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
    at org.apache.myfaces.view.facelets.el.ELText$ELTextVariable.toString(ELText.java:208)
    at org.apache.myfaces.view.facelets.el.ELText$ELTextComposite.toString(ELText.java:140)
    ...

だから今私の質問:それは本当ですか、それc:setは文字列値を受け入れませんか?


ところで、たとえばパラメータを使用する場合

        <c:set var="image" value="#{cc.attrs.index}" />

すべて問題ありませんが、URLが正しくありません。


私のMaven依存関係:

  • org.apache.myfaces.core.myfaces-api 2.1.7
  • org.apache.myfaces.core.myfaces-impl 2.1.7
  • javax.el.el-api 2.2
4

1 に答える 1

0

この問題を解決するには、純粋な JSF を使用します

<h:graphicImage value="#{(cc.attrs.index eq 0)? 'image.png' : 'image1.png' }" />
于 2012-05-05T00:01:45.467 に答える