如何在EL中连接一个字符串?

alq*_*oun 24 jsp jstl el string-concatenation

如何将promoPrice变量作为字符串的一部分打印ONLY $4.67

<c:set var="promoPrice" value="4.67" />
<p>${(promoPrice != null) ? "ONLY $${promoPrice}" : "FREE"}</p>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 35

如果您已经使用EL 3.0(Java EE 7; WildFly,Tomcat 8,GlassFish 4等),那么您可以使用new +=运算符:

<p>${not empty promoPrice ? 'ONLY $' += promoPrice : 'FREE'}</p>
Run Code Online (Sandbox Code Playgroud)

如果你还没有使用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>
Run Code Online (Sandbox Code Playgroud)

或者,如果您还没有使用EL 2.2,那么使用JSTL <c:set>创建一个新的EL变量,其中连接的值只是内联值:

<c:set var="promoPriceString" value="ONLY $${promoPrice}" />
<p>${not empty promoPrice ? promoPriceString : 'FREE'}</p>
Run Code Online (Sandbox Code Playgroud)

您的特定情况下,另一种方法是将表达式分为两部分:

<p>${not empty promoPrice ? 'ONLY $' : 'FREE'}${promoPrice}</p>
Run Code Online (Sandbox Code Playgroud)

如果${promoPrice}为null或为空,则无论如何都不会打印.