【问题标题】:converting strings to Title case in JSTL在 JSTL 中将字符串转换为标题大小写
【发布时间】:2009-01-27 10:41:47
【问题描述】:

有什么方法可以将字符串转换为标题大小写,使用 JSTL 标签?

提前致谢。

【问题讨论】:

  • 很好的问题,也是 JSTL 的另一个缺点。标题案例是一个非常基本的显示需求。这些答案都是好的和有效的,但我觉得 JSTL 的创建者没有直接包含这个功能是侮辱。

标签: java string jstl


【解决方案1】:

在服务器上转换字符串的另一种方法是let CSS do the work

text-transform: capitalize

【讨论】:

  • 酷。它有帮助,因为我只需要标题案例来进行演示,CSS 将是一个更好的解决方案。谢谢。
  • 为什么总是在寻找复杂的答案?您的解决方案真的是最好的!
  • 在某种程度上,这不是“我如何在 JSTL 中做到这一点”的一个很好的答案。我喜欢 romaintaz 的解释,因为它更好地涵盖了某人如何在 JSTL 中做到这一点。
  • @Nick - 我认为这是一个公平的评论,但偶尔在字里行间阅读并提出替代方案并没有什么坏处。
  • 这仅适用于带有 CSS 的某些输入。例如,如果我的输入数据全部大写,则大写将不起作用,它将使我的文本保持大写格式。例如:有人输入全部大写的姓氏。我想用正确的/标题大小写来显示这个名字,然后不要使用 CSS,这个名字将全部大写。
【解决方案2】:

一个想法:

在一个类中,创建一个使用来自 Apache Commons Lang 的 WordUtils 的简单方法,该方法将操纵您的字符串:

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:this post 给我的答案让我很受启发。

【讨论】:

  • 他在寻找 Title Case 不是全部大写
  • capitalize() 方法不会将您的字符串转换为大写!最终做 StringUtils.capitalize(StringUtils.lowerCase(theString)) !
  • 可能在回答时不可用,但您也可以在 WordUtils 中使用 capitalizeFully。它处理已经全部大写的单词。
【解决方案3】:

在 JSTL 中并不太难...

${fn:toUpperCase(fn:substring(user.firstName, 0, 1))}${fn:toLowerCase(fn:substring(user.firstName, 1, -1))}

【讨论】:

  • 如果名字中包含中间名首字母,则会失败。它以小写结尾。
猜你喜欢
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多