Как использовать первую букву с помощью JSTL / CSS? - PullRequest
13 голосов
/ 05 мая 2011

Я кодирую приложение JSP / JSTL.Я хотел бы оформить ссылку с первой буквы в верхнем регистре и остальные строчные.Например, «моя ССЫЛКА» стала бы «Моя ссылка».

Я видел, что в CSS я могу сделать:

<a href="..." style="text-transform: capitalize">${linkName}</a>

, который работает только тогда, когда $ {linkName} - все строчные буквы,но не работает так, как я хочу, когда верхний регистр, например, если он содержит «МОЯ ССЫЛКА», будет по-прежнему отображаться в верхнем регистре.

Мне было интересно, как лучше всего решить эту проблему, например, это можетиспользовать JSTL для преобразования $ {linkName} в нижний регистр.

Кто-нибудь знает, как это сделать?Или какой-нибудь альтернативный способ?

Заранее спасибо!

Ответы [ 4 ]

36 голосов
/ 05 мая 2011

Вы можете использовать JSTL функции fn:toLowerCase() для нижнего регистра строки.

Итак, это должно сделать

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<a href="..." style="text-transform: capitalize">${fn:toLowerCase(linkName)}</a>
19 голосов
/ 28 октября 2011

Если вы не хотите использовать CSS и используете только JSTL, у этого решения есть несколько крайностей:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>


<a href="..." >
${fn:toUpperCase(fn:substring(linkName, 0, 1))}${fn:toLowerCase(fn:substring(linkName, 1,fn:length(linkName)))}
</a>
4 голосов
/ 16 января 2015

Apache Commons предлагает библиотекам выполнять много общих полезных задач.WordUtils может помочь вам в этом.

WordUtils.capitalizeFully("aaa BBB cCc");

Будет выводить ...

Aaa Bbb Ccc

Справочник по WordUtils: http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html#capitalizeFully%28java.lang.String%29

В своем веб-приложении я добавил обертку для этого в свой файл TLD ...

<function>
    <name>capitalize</name>
    <function-class>org.apache.commons.lang3.text.WordUtils</function-class>
    <function-signature>java.lang.String capitalizeFully(java.lang.String)</function-signature>
</function>

Так что теперь я могу это сделать ...

<p>Hello ${blah:capitalize(firstName)}</p>

Я сделаюоставьте вас для чтения пользовательских файлов TLD, поскольку другие люди объясняют это лучше.

2 голосов
/ 31 мая 2016

PFB приведенный ниже код, который конвертирует «Я ЕСМЬ бог» в «Я ЕСМЬ Бог»

    <c:forEach var="word" items="${fn:split(fn:toLowerCase(stringToBeConverted),' ')}">
        <c:set var="formattedText" value="${formattedText} ${fn:toUpperCase(fn:substring(word,0,1))}${fn:toLowerCase(fn:substring(word,1,fn:length(word)))}" />
    </c:forEach>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...