如何获取promoPrice
变量作为字符串ONLY $4.67
的一部分进行打印?
<c:set var="promoPrice" value="4.67" />
<p>${(promoPrice != null) ? "ONLY $${promoPrice}" : "FREE"}</p>
最佳答案
如果您已经在使用EL 3.0(Java EE 7; WildFly,Tomcat 8,GlassFish 4等),则可以为此使用新的+=
运算符:
<p>${not empty promoPrice ? 'ONLY $' += promoPrice : 'FREE'}</p>
但是,如果尚未使用EL 3.0,请使用EL 2.2(Java EE 7; JBoss AS 6/7,Tomcat 7,GlassFish 3等)调用带参数的直接方法的功能,然后将其应用于
String#concat()
:<p>${not empty promoPrice ? 'ONLY $'.concat(promoPrice) : 'FREE'}</p>
或者,如果您甚至还没有使用EL 2.2,请使用JSTL
<c:set>
创建一个新的EL变量,其串联值仅内联在value中:<c:set var="promoPriceString" value="ONLY $${promoPrice}" />
<p>${not empty promoPrice ? promoPriceString : 'FREE'}</p>
在您的特定情况下,另一种方法是将表达式分为两部分:
<p>${not empty promoPrice ? 'ONLY $' : 'FREE'}${promoPrice}</p>
如果
${promoPrice}
为null或为空,则无论如何都不会打印。