JSTL I18N 格式标签库 使用之二_____读取消息资源
2013-12-20 11:05
387 查看
读取消息资源主要有4个标签,在这里进行一下小总结:
<fmt:buddle> <fmt:setBuddle> <fmt:message> <fmt:param> 四个标签之间的嵌套关系大概是这个样子:
第1~6行是一种方式 第8~9行是一种方式。
下面进行详细说明。ps:读取的资源文件就是 *.properties 文件。
1. <fmt:bundle>标签
该标签主要用于将资源文件绑定于它的标签体中的显示。就如上面的第一种方式。
【语法】:
<fmt:bundle basename=”name”[prefix=”prefix”]>
…标签主题
</fmt:bundle>
![](http://pic002.cnblogs.com/images/2012/319502/2012022714580595.jpg)
2. <fmt:setBundle>标签
该标签主要用于绑定资源文件或者把资源文件保存在指定的JSP范围内。
【语法】:
<fmt:setBundle basename=”name” [var=”name”]
[scope=”page|request|session|application”]
/>
![](http://pic002.cnblogs.com/images/2012/319502/2012022714593180.jpg)
3. <fmt:message>标签
该标签主要负责读取本地资源文件,从指定的消息文本资源文件中读取键值,并且可以将键值保存在指定的JSP范围内。
【语法1】:
<fmt:message key=”keyName”[bundle=”bundle”]
[scope=”page|request|session|application”]
/>
【语法2】:
<fmt:message key=”keyName”[bundle=”bundle”]
[scope=”page|request|session|application”]>
<fmt:param/>
</fmt:message>
![](http://pic002.cnblogs.com/images/2012/319502/2012022715032858.jpg)
提示:建议此处的bundle使用EL表达式,因为属性bundle的类型为LocalizationContext,而不是一个String类型的URL。
4. <fmt:param>标签
该标签主要用于当<fmt:message>中资源文件中获得键值时,动态的为资源文件中的变量赋值。
【语法1】:
<fmt:param value=”value”/>
【语法2】:
<fmt:param >
…标签主体
</fmt:param>
下面看一段代码,理解一下:
首先创建一个 mysrc.properties 文件,并存入内容 name="lihui" age="22"。在这里有一个路径问题需要注意,比如将这个文件放在 src/com 文件夹下,那么,引用该文件时,如下下面代码中所示,否则读取到的数据不是正确的,而是 ???name??? 类似的字符串。
按 Ctrl+C 复制代码
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
<html>
<head>
<title>I18N标签库</title>
</head>
<body>
<H4>
<c:out value="资源文件读取示例"></c:out>
</H4>
<hr>
<fmt:bundle basename="com/mysrc">
<c:out value="从message资源文件中得到的key为name的值为:"></c:out>
<fmt:message key="name"></fmt:message>
</fmt:bundle>
<hr>
<fmt:setBundle basename="com/mysrc" var="m" />
<fmt:message key="age" bundle="${m}"></fmt:message>
${m}
</body>
</html>
按 Ctrl+C 复制代码
显示如下:
![](http://pic002.cnblogs.com/images/2012/319502/2012022716350428.jpg)
开始的时候我是将资源文件直接放在根目录下,结果总是读取不到数据,后来查看了很多人的博客,发现该资源文件必须经过编译后在 WEB-INF/classes 文件夹下才能使用,所以,要把这个文件放在src的某个包中,这样编译之后就会在 classes 文件夹出现了。
在看一个例子:
此例中,资源文件mysrc.properties 的内容: test=hello,{0},welcome to my blog. Today is {1}.
按 Ctrl+C 复制代码
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
<html>
<head>
<title>I18N标签库</title>
</head>
<body>
<H4>
<c:out value="<fmt:param>标签的使用"></c:out>
</H4>
<hr>
<fmt:bundle basename="com/mysrc">
<fmt:message key="test">
<fmt:param value="lixiaohui" />
<fmt:param value="${date}" />
</fmt:message>
</fmt:bundle>
</body>
</html>
按 Ctrl+C 复制代码
显示结果:
![](http://pic002.cnblogs.com/images/2012/319502/2012022717055142.jpg)
如果把资源文件中 test 的值设置为: test=hello,{0},welcome to my blog. Today is {1,date}.
则指定了第二个动态变量是一个日期类型的对象,这是显示结果为:
<fmt:buddle> <fmt:setBuddle> <fmt:message> <fmt:param> 四个标签之间的嵌套关系大概是这个样子:
1 <fmt:buddle basename="name"> 2 <fmt:message key="key"> 3 <fmt:param value="value"> 4 </fmt:param> 5 </fmt:message> 6 </fmt:buddle> 7 8 <fmt:setBuddle basename="name"/> 9 <fmt:message key="key">
第1~6行是一种方式 第8~9行是一种方式。
下面进行详细说明。ps:读取的资源文件就是 *.properties 文件。
1. <fmt:bundle>标签
该标签主要用于将资源文件绑定于它的标签体中的显示。就如上面的第一种方式。
【语法】:
<fmt:bundle basename=”name”[prefix=”prefix”]>
…标签主题
</fmt:bundle>
![](http://pic002.cnblogs.com/images/2012/319502/2012022714580595.jpg)
2. <fmt:setBundle>标签
该标签主要用于绑定资源文件或者把资源文件保存在指定的JSP范围内。
【语法】:
<fmt:setBundle basename=”name” [var=”name”]
[scope=”page|request|session|application”]
/>
![](http://pic002.cnblogs.com/images/2012/319502/2012022714593180.jpg)
3. <fmt:message>标签
该标签主要负责读取本地资源文件,从指定的消息文本资源文件中读取键值,并且可以将键值保存在指定的JSP范围内。
【语法1】:
<fmt:message key=”keyName”[bundle=”bundle”]
[scope=”page|request|session|application”]
/>
【语法2】:
<fmt:message key=”keyName”[bundle=”bundle”]
[scope=”page|request|session|application”]>
<fmt:param/>
</fmt:message>
![](http://pic002.cnblogs.com/images/2012/319502/2012022715032858.jpg)
提示:建议此处的bundle使用EL表达式,因为属性bundle的类型为LocalizationContext,而不是一个String类型的URL。
4. <fmt:param>标签
该标签主要用于当<fmt:message>中资源文件中获得键值时,动态的为资源文件中的变量赋值。
【语法1】:
<fmt:param value=”value”/>
【语法2】:
<fmt:param >
…标签主体
</fmt:param>
下面看一段代码,理解一下:
首先创建一个 mysrc.properties 文件,并存入内容 name="lihui" age="22"。在这里有一个路径问题需要注意,比如将这个文件放在 src/com 文件夹下,那么,引用该文件时,如下下面代码中所示,否则读取到的数据不是正确的,而是 ???name??? 类似的字符串。
按 Ctrl+C 复制代码
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
<html>
<head>
<title>I18N标签库</title>
</head>
<body>
<H4>
<c:out value="资源文件读取示例"></c:out>
</H4>
<hr>
<fmt:bundle basename="com/mysrc">
<c:out value="从message资源文件中得到的key为name的值为:"></c:out>
<fmt:message key="name"></fmt:message>
</fmt:bundle>
<hr>
<fmt:setBundle basename="com/mysrc" var="m" />
<fmt:message key="age" bundle="${m}"></fmt:message>
${m}
</body>
</html>
按 Ctrl+C 复制代码
显示如下:
![](http://pic002.cnblogs.com/images/2012/319502/2012022716350428.jpg)
开始的时候我是将资源文件直接放在根目录下,结果总是读取不到数据,后来查看了很多人的博客,发现该资源文件必须经过编译后在 WEB-INF/classes 文件夹下才能使用,所以,要把这个文件放在src的某个包中,这样编译之后就会在 classes 文件夹出现了。
在看一个例子:
此例中,资源文件mysrc.properties 的内容: test=hello,{0},welcome to my blog. Today is {1}.
按 Ctrl+C 复制代码
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
<html>
<head>
<title>I18N标签库</title>
</head>
<body>
<H4>
<c:out value="<fmt:param>标签的使用"></c:out>
</H4>
<hr>
<fmt:bundle basename="com/mysrc">
<fmt:message key="test">
<fmt:param value="lixiaohui" />
<fmt:param value="${date}" />
</fmt:message>
</fmt:bundle>
</body>
</html>
按 Ctrl+C 复制代码
显示结果:
![](http://pic002.cnblogs.com/images/2012/319502/2012022717055142.jpg)
如果把资源文件中 test 的值设置为: test=hello,{0},welcome to my blog. Today is {1,date}.
则指定了第二个动态变量是一个日期类型的对象,这是显示结果为:
![](http://pic002.cnblogs.com/images/2012/319502/2012022717075346.jpg)
相关文章推荐
- JSTL I18N 格式标签库 使用之二_____读取消息资源
- JSTL I18N 格式标签库 使用之二_____读取消息资源
- JSTL I18N 格式标签库 使用之二_____读取消息资源
- [置顶] JSTL I18N 格式标签库 使用之二_____读取消息资源
- JSTL I18N格式标签库之----读取消息资源
- JSTL I18N 格式标签库 使用之二_____读取消息资源
- JSTL I18N 格式标签库 使用之三_____国际化
- JSTL I18N 格式标签库 使用之三_____国际化
- JSTL I18N 格式标签库 使用之一_____数字日期格式化
- JSTL标签库学习笔记 六、I18N格式化标签库的数字日期格式化、读取消息资源、国际化
- JSTL I18N 格式标签库 使用之一_____数字日期格式化
- JSTL I18N 格式标签库 使用之一_____数字日期格式化
- [置顶] JSTL I18N 格式标签库 使用之一_____数字日期格式化
- JSTL标签库学习笔记 六、I18N格式化标签库的数字日期格式化、读取消息资源、国际化
- JSTL I18N 格式标签库 使用之三_____国际化
- [置顶] JSTL I18N 格式标签库 使用之三_____国际化
- JSTL I18N 格式标签库___数字日期格式化
- 在.NET中读取嵌入和使用资源文件的方法
- 如何使用JSTL来读取Action中的变量
- JSTL核心标签库的使用及格式标签库的使用