EL表达式:时间,货币格式化

首先,jstl既然可以国际化,那么必然可以自动根据local设置来选择资源文件。

2,fmt:setLocal 可以设置Local,从而改变输出格式。

3,fmt:message 可以输出资源文件里的key对应的value。
 <fmt:message key=xxx"/>
和struts一样 还可以传参数
 <fmt:message key=xxx"/>
  <fmt:param value="${abc}"/>
 </fmt:message>

4,<fmt:bundle>
 <fmt:setBundle>
 这地方有点意思,首先我在工程的WEB-INF/classes下面建立了一个资源文件resources.properties。然后在jsp页面里
 <fmt:bundle basename="resources.properties">使用此资源文件。
 Nitrox插件提示找不到resources.properties的警告.

 使用<fmt:message key="xxx"/>也无法显示.

 原因:工程没有指定input ,output的对应关系.这样classes并不是classpath路径.
 
 解决办法:
  设置input为/WEB-INF/src ,output /WEB-INF/classes
  然后把resources.properties放在 /WEB-INF/src/下面。
  这样在/WEB-INF/classes/下面自动生成了一个resources.properties.这就是我想要的。
  好了,在试一次,资源文件找到了。

    <fmt:message key="xxx"/>也能正常显示了。

5,难道<fmt:message>必须和<fmt:bundle >搭配使用才行吗?实在觉得有点罗嗦。

    没办法,jstl就是这样用的。
   
6,jstl使用资源文件有个大的问题,因为fmt:bundle basename="xxx" 指定死了资源文件了,那么如果local不同了
 岂不是还从这个资源文件里取数据吗?这样美国的网页浏览仍旧显示日文,就不合理了.
 我理解错了,<fmt:bundle basename="xxx"/>并非指定资源文件就是他,而是指资源文件的基本名字,例如,
 如果是英国的local那么自动查找xxx_en.properties,如果是中国的local那么自动去查找xxx_zh.properties.
 和struts是一样的.

 

<fmt:bundle>:资源绑定。除了以前提到过的在web.xml中声明以外,还可以利用此标签。例<fmt:bundle basename="message"></fmt:bundle>

<fmt:setLocale>:设置locale,主要是用于这种情况,一个中国人在国外,locale是en_US,但想用中文显示。例:<fmt:setLocal value="zh_CN"/>

<fmt:message>:输出properties文件中的指定内容。例<fmt:message key="user"/>

<fmt:formatNumber type="number">格式化普通数字
<fmt:formatNumber type="percent">格式化百分比

三种数字类型参数:currency,number,percent

<fmt:parseNumber var="i" type="number" value="45678.2345" />
 <c:out value="${i}"  escapeXml="false" />  分析出数字

<fmt:requestEncoding value="GB18030"/> 格式化文本编码

<fmt:formatDate value="${date}" type="both" timeStyle="long" dateStyle="long" />
type="both" 输入日期也同时输出具体时间
timeStyle="long" 时间以“长”格式输出  差别:下午02时06分59秒 与 14:06:59 
dateStyle="long" 日期以“长”格式输出  差别:2006年9月7日 与 2006-9-7

四种长短参数:long,short,medium,full

<fmt:timeZone value="${timezone}"/>  时区偏移,与上面可配合使用:
<fmt:formatDate value="${d}" timeZone="${zn}" type="both" />

<fmt:parseDate var="i" type="date" value="2006-12-11" />
 <c:out value="${i}"  escapeXml="false" /> 分析出时间



[size=medium]经常要用到格式化一些时间格式或货币格式如:

2009年06月02日 10:53:48         2000.05

 

在使用JSP当中通用会用到JSTL标签,借助fmt:标签可以很容易做到,代码如下:

 

时间:


Java代码 
<fmt:formatDate value="${object[0]}" pattern="yyyy年MM月dd日 HH:mm:ss"/>  

<fmt:formatDate value="${object[0]}" pattern="yyyy年MM月dd日 HH:mm:ss"/> 这里的value值是你要格式化的值,一般是后台传送到前台的Date对象  后面的pattern对应的是要显示的格式,可以自定义.

 

货币:


Java代码 
<fmt:formatNumber value="${object[5]}" pattern="##.##"  minFractionDigits="2"/>  

<fmt:formatNumber value="${object[5]}" pattern="##.##"  minFractionDigits="2"/> 同理,这里的Value值是任何数值类型,pattern为要显示的格式,此处为显示小数点后两位. minFractionDigits="2" 代表要精确的位数.   记住,这里的值都是通过四舍五入得到的,并非完全精确!

 

最后别忘记在页面的头部导入相应的

<%@ taglib uri="/WEB-INF/tld/fmt.tld" prefix="fmt" %> 

当然前提是你的项目当中有相应的jar包![/size]

你可能感兴趣的:(Web,jsp,xml,struts)