为了账号安全,请及时绑定邮箱和手机立即绑定

如何在EL中连接字符串?

如何在EL中连接字符串?

holdtom 2019-10-12 10:45:25
如何获取promoPrice要作为字符串一部分打印的变量ONLY $4.67?<c:set var="promoPrice" value="4.67" /><p>${(promoPrice != null) ? "ONLY $${promoPrice}" : "FREE"}</p>
查看完整描述

3 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

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


<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或为空,则无论如何都不会打印出来。


查看完整回答
反对 回复 2019-10-12
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

直接jstl方式


<c:set var="promoPrice" value="4.67" />

<p>

<c:choose>

    <c:when test="${(promoPrice != null)}">

        ONLY $${promoPrice}

    </c:when>

    <c:otherwise>

        FREE

    <c:otherwise>

</c:choose>

</p>


查看完整回答
反对 回复 2019-10-12
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

与EL 2.0+兼容的一种简单而健壮的字符串连接解决方案是使用中间变量:


<c:set var="promoPrice" value="4.67" />

<c:set var="priceText" value="ONLY ${promoPrice}" />

<p>${(promoPrice != null) ? priceText : "FREE"}</p>

根据@BalusC,从EL 2.2开始,您可以使用String#concat()方法进行串联,从EL 3.0开始,您可以使用new +=运算符。


查看完整回答
反对 回复 2019-10-12
  • 3 回答
  • 0 关注
  • 629 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信