格式标记库:格式动作 如果你已经使用了Java的 DateFormat 和NumberFormat类,在下面的标记中使用的方法应该看起来眼熟,因为JSTL格式化动作是在这些类之上建立的。这些Java类普遍提供一个format( )函数,它将一个Java类型转化为一个格式化的String和创建对应于该String的Java对象。 fmt:formatNumber动作有一个value属性和一个pattern属性。value属性是一个与我们看到的其它value属性类似的EL表达式或者变量。pattern属性与在NumberFormat类中定义的模式一样。下列动作发送一个格式化的String到JSP页的输出上:
<fmt:formatNumber value="1000.001" pattern="#,#00.0#"/>在这个fmt:formatNumber动作里,我们使用了type属性来指定:格式化我们需要格式化的值为一个货币值。我们保存格式化的结果在一个变量名为dollars中。在一个美国的locale类中,下面的程序生成一个字符串$3456.79(注意,它将使用的货币值四舍五入了):
<fmt:formatNumber value="3456.789" type="currency" var="dollars"/>用于上面的type属性的可能值包括currency、 number、 和percent。 在例中,我们使用了另一种方法——使用了一个包括在value属性中的一个格式化的域(currency,每type属性)的一个文本字符串。并且解析它来获取一个数字。结果储存在由var属性指定的一个变量内。尽管这个属性是可选的,还是会经常使用它。另外,解析的值送到页输出上:
<fmt:parseNumber value="${currencyInput}" type="currency" var="parsedNumber"/> fmt:formatDate动作有一个value属性、一个format属性、 一个指向处理格式化的格式类的属性(典型的,如java.util.Date): <jsp:useBean id="now" class="java.util.Date" /> <fmt:formatDate value="${now}" timeStyle="long" dateStyle="long"/> 像数字格式化一样,JSTL页提供一个机制来解析一个代表日期的、进入Date对象的字符串: <fmt:parseDate value="${dateInput}" pattern="MM dd, YYYY" /> 查看java.util.DateFormat类,了解如何处理格式化和模式的更多详细的资料。