Cómo concatenar una cadena en EL?

¿Cómo puedo obtener la variable promoPrice para imprimir como parte de la cadena ONLY $4.67 ?

  

${(promoPrice != null) ? "ONLY $${promoPrice}" : "FREE"}

    Si ya tiene EL 3.0 (Java EE 7, WildFly, Tomcat 8, GlassFish 4, etc.), puede usar el nuevo operador += para esto:

     

    ${not empty promoPrice ? 'ONLY $' += promoPrice : 'FREE'}

    Si todavía no está en EL 3.0, entonces use EL 2.2 (Java EE 7; JBoss AS 6/7, Tomcat 7, GlassFish 3, etc.) la capacidad de invocar métodos directos con argumentos, que luego aplica en String#concat() :

     

    ${not empty promoPrice ? 'ONLY $'.concat(promoPrice) : 'FREE'}

    O si aún no está en EL 2.2 todavía, entonces use JSTL para crear una nueva variable EL con los valores concatenados recién en su valor:

      

    ${not empty promoPrice ? promoPriceString : 'FREE'}

    En su caso particular , otra forma es dividir la expresión en dos partes:

     

    ${not empty promoPrice ? 'ONLY $' : 'FREE'}${promoPrice}

    Si ${promoPrice} es nulo o está vacío, no se imprimirá de todos modos.

    Camino recto jstl

      

    ONLY $${promoPrice} FREE

    Una solución directa y robusta para la concatenación de cadenas, que es compatible con EL 2.0+, es usar una variable intermedia:

       

    ${(promoPrice != null) ? priceText : "FREE"}

    De acuerdo con @BalusC , comenzando desde EL 2.2 puede hacer la concatenación usando String#concat() método String#concat() , y comenzando desde EL 3.0 puede usar el nuevo operador += para esto.

    Hice algo como esto, donde tengo una variable mathjaxUrl y quiero ponerme en contacto con otra cadena

      ... some other stuff here  

    espero que esto te ayude

    ¿No funcionará esto?

      

    ${(promoPrice != null) ? "ONLY $"${promoPrice} : "FREE"}

    Tenga en cuenta que el $ {promoPrice} está fuera de las cotizaciones. Esta parece la solución más simple.