numeros - concatenar textos java
Concatenación de cadenas en EL (7)
1.El + (operador) no tiene efecto en eso al usar EL. 2. Así que esta es la manera, para usar eso
<c:set var="enabled" value="${value} enabled" />
<c:out value="${empty value ? ''none'' : enabled}" />
¿Esto es útil para ti?
Esta pregunta ya tiene una respuesta aquí:
- Cómo concatenar una cadena en EL? 5 respuestas
Me gustaría concatenar una cadena dentro de un operador ternario en EL (Lenguaje de Expresión).
Supongamos que hay una variable llamada valor. Si está vacío, quiero usar un texto predeterminado. De lo contrario, necesito agregarle texto estático.
${(empty value)? "none" : value + " enabled"}
Esto no compilará sin embargo. ¿Cuál sería la forma correcta de escribir esto? ¿O esto es posible?
Con EL 2 puedes hacer lo siguiente:
#{''this''.concat('' is'').concat('' a'').concat('' test!'')}
Desde Expression Language 3.0, es válido usar el operador + = para la concatenación de cadenas.
${(empty value)? "none" : value += " enabled"} // valid as of EL 3.0
Citando la especificación EL 3.0 .
Operador de concatenación de cadenas
Para evaluar
A += B
- Coerce A y B a String.
- Devuelve la cadena concatenada de A y B.
Esta respuesta es obsoleta. La tecnología ha avanzado. A menos que esté trabajando con sistemas heredados, vea la respuesta de Joel .
No hay operador de concatenación de cadenas en EL. Si no necesita la cadena concatenada para pasar a otra operación, simplemente coloque estas expresiones una al lado de la otra:
${value}${(empty value)? ''none'' : '' enabled''}
Si ya tiene EL 3.0 (Java EE 7, WildFly, Tomcat 8, GlassFish 4, etc.), puede usar el nuevo operador +=
para esto:
<c:out value="${empty value ? ''none'' : value += '' enabled''}" />
Sin embargo, si aún no está en EL 3.0 y el value
es una instancia genuina de java.lang.String
(y por lo tanto no, por ejemplo, java.lang.Long
), utilice EL 2.2 (Java EE 7; JBoss AS 6/7, Capacidad de Tomcat 7, GlassFish 3, etc.) de invocar métodos directos con argumentos, que luego aplica en String#concat()
:
<c:out value="${empty value ? ''none'' : value.concat('' enabled'')}" />
O si aún no está en EL 2.2 todavía, entonces use JSTL <c:set>
para crear una nueva variable EL con los valores concatenados recién subrayados en valor:
<c:set var="enabled" value="${value} enabled" />
<c:out value="${empty value ? ''none'' : enabled}" />
también puede ser una gran idea usar concat para EL + MAP + JSON problema como en este ejemplo:
# {myMap [''''. concat (myid)]. content}
La respuesta de Mc Dowell es correcta. Solo quiero agregar una mejora si en caso de que necesite devolver el valor de la variable como:
${ empty variable ? ''<variable is empty>'' : variable }