2008-03-29

关于JSTL中<fmt:message>的使用

关键字: jsp技术
今天有个同学在学习JSP技术的时候碰到一个问题,让我过去给他看看,一看错误很多啊!有一些就是因为编程习惯不好还是不够细心,导致的大小写还有就是标点等错误啦。不过到了最后我帮他把语法上的错误以及配置的错误也修改好了,比如:将其JSTL库文件.jar文件拷贝到其工程目录下WEB-INF下的lib文件夹中。然后再使用一个native2ascii命令将其.properties文件中的汉字全部转换为Unicode编码之后,放到WEB-INF下的classes目录下,然后在浏览器地址栏中键入:http://localhost:9090/WebTest/Fmt_Test.jsp
一直出现异常,重启Tomcat之后发现运行没有出错。
代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix = "fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<%
Date now = new Date();
Double num = new Double(123.45);
request.setAttribute("now",now);
request.setAttribute("num",num);
%>
<fmt:setLocale value="zh_CN"/>
<fmt:formatDate value="${now}"/>
<fmt:bundle baseName="MyResource">
<fmt:message key="Str1">
<fmt:param>lishali</fmt:param>
<fmt:param value="${now}"/>
<fmt:param value="${now}"/>
<fmt:param value="${num}"/> 
</fmt:message>
</fmt:bundle>
</html>


另外的MyResource.properties文件如下:
Str1=Hi!{0}<br/> Today is :{1,date,long}<br/> Time is:{2,time,full} <br/> The Number is:{3,number,#.#}

下面我自己来解释一下,使用<fmt:bundle baseName="MyResource">标签,指定了以下格式输出信息的属性文件(MyResource.properties)。然后使用<fmt:message key="Str1">找到键值(属性文件中以键值对形式保存数据),由于在属性文件中,使用了动态属性参数。所以在格式化输出信息时,应传入参数,分别为第一个参数缺省属性即为Sring型,第二个为date型,并且以长时间格式输出, 第三个参数类型为time型,为全显示,第四个参数为数字类型,并且由#.#确定为浮点型显示。
最终效果如下:
  • 9c14ab6b-7b81-3845-9f37-4ea535cadee0-thumb
  • 大小: 480.4 KB
评论
发表评论

您还没有登录,请登录后发表评论

lishali12345
搜索本博客
我的相册
D41ff984-0e35-3ba0-bcaa-eacb60042327-thumb
09-23-87_std.jpg
共 6 张
存档
最新评论