java - lib - Convirtiendo cadenas en mayúsculas y minúsculas en JSTL
prefix jstl (3)
¿Hay alguna forma de convertir una cadena en mayúscula, usando etiquetas JSTL?
Gracias por adelantado.
Una alternativa para transformar la cadena en el servidor es dejar que CSS haga el trabajo :
text-transform: capitalize
No es demasiado duro en JSTL ...
${fn:toUpperCase(fn:substring(user.firstName, 0, 1))}${fn:toLowerCase(fn:substring(user.firstName, 1, -1))}
Una idea:
En una clase, crea un método simple que use WordUtils de Apache Commons Lang que manipulará tu cadena:
import org.apache.commons.lang.WordUtils;
...
public static String titleCase(String input){
return WordUtils.capitalize(input);;
}
Y ahora, crea tu propia etiqueta (en una función.tld):
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>functions library</description>
<display-name>functions</display-name>
<tlib-version>1.1</tlib-version>
<short-name>xfn</short-name>
<uri>http://yourdomain/functions.tld</uri>
<function>
<description>
Title case a String
</description>
<name>titleCase</name>
<function-class>Functions</function-class>
<function-signature>java.lang.String titleCase(java.lang.String)</function-signature>
<example>
${xfn:titleCase(string)}
</example>
</function>
</taglib>
PD: Me inspiré bastante de este post para dar mi respuesta.