如何连接EL中的string?
如何获得promoPrice
variables作为string的一部分打印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>
来创build一个新的ELvariables,其中的连接值只是内联值:
<c:set var="promoPriceString" value="ONLY $${promoPrice}" /> <p>${not empty promoPrice ? promoPriceString : 'FREE'}</p>
在你的具体情况下 ,另一种方法是将expression式分为两部分:
<p>${not empty promoPrice ? 'ONLY $' : 'FREE'}${promoPrice}</p>
如果${promoPrice}
为空或空,它将不会被打印。
直接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>
我做了这样的事情,我有一个variablesmathjaxUrl
,我想与其他string联系
<c:set var="mathjaxUrl" value="https://cdnjs.cloudflare.com/ajax/libs/mathjax" /> ... some other stuff here <c:set var="mathjaxUrl" value="${mathjaxUrl}?config=TeX-AMS-MML_HTMLorMML" />
希望这对你有所帮助
这不会工作吗?
<c:set var="promoPrice" value="4.67" /> <p>${(promoPrice != null) ? "ONLY $"${promoPrice} : "FREE"}</p>
请注意,$ {promoPrice}在引号之外。 这看起来像最简单的解决scheme。