Можно ли преобразовать строку в регистр заголовков, используя теги JSTL?
Заранее спасибо.
Альтернативой преобразованию строки на сервере является , позволяющее CSS выполнять работу :
text-transform: capitalize
Это не слишком сложно в JSTL ...
${fn:toUpperCase(fn:substring(user.firstName, 0, 1))}${fn:toLowerCase(fn:substring(user.firstName, 1, -1))}
Идея:
В классе создайте простой метод, который использует WordUtils из Apache Commons Lang, который будет манипулировать вашей строкой:
import org.apache.commons.lang.WordUtils; ... public static String titleCase(String input){ return WordUtils.capitalize(input);; }
А теперь создайте свой собственный тег (в файле function.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>
ps: я был весьма вдохновлен этим постом , чтобы дать мой ответ.