【问题标题】:How to capitalize first letter with JSTL/CSS?如何使用 JSTL/CSS 将首字母大写?
【发布时间】:2011-08-19 07:27:48
【问题描述】:

我正在编写一个 JSP/JSTL 应用程序。我想用第一个字母大写和其余小写来设置链接的样式。例如,“我的链接”将变为“我的链接”。

我看到在 CSS 中我可以做到:

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

仅当 ${linkName} 全部为小写时才有效,但在大写时不起作用,例如,如果它包含“MY LINK”,仍将全部显示为大写。

我想知道解决这个问题的最佳方法是什么,例如可以使用 JSTL 将 ${linkName} 转换为小写。

有人知道怎么做吗?或者有什么替代方法?

提前致谢!

【问题讨论】:

  • 如果我可以决定我的字符串并将其小写,则仅转换第一个字母的出色 css 解决方案。

标签: css jsp jstl


【解决方案1】:

您可以使用JSTL 函数fn:toLowerCase() 将字符串小写。

所以,应该这样做

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<a href="..." style="text-transform: capitalize">${fn:toLowerCase(linkName)}</a>

【讨论】:

【解决方案2】:

如果你不想用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>

【讨论】:

    【解决方案3】:

    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 文件,因为其他人会更好地解释它。

    【讨论】:

      【解决方案4】:

      PFB 下面的代码会将“i AM god”转换为“I Am God”

          <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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-06
        • 2011-03-29
        • 2010-12-05
        • 1970-01-01
        • 2021-07-29
        相关资源
        最近更新 更多