如何连接EL中的string?

如何获得promoPricevariables作为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。