【发布时间】:2012-05-04 23:26:58
【问题描述】:
我想用下面的代码在 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
【问题讨论】:
-
如果将字符串值放在开始标签和结束标签之间会发生什么:
<c:set var="image">image.png</c:set>? -
然后我得到一个 NullPointerException。