`

JSTL I18N 格式标签库 使用之二读取消息资源

 
阅读更多

读取消息资源主要有4个标签,在这里进行一下小总结:

<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>

2. <fmt:setBundle>标签

该标签主要用于绑定资源文件或者把资源文件保存在指定的JSP范围内。

【语法】:

<fmt:setBundle basename=”name” [var=”name”]

[scope=”page|request|session|application”]

/>

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>

提示:建议此处的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??? 类似的字符串。

View Code
复制代码
 1 <%@ page language="java" pageEncoding="GBK"%>
 2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
 4 <jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
 5 <html>
 6     <head>
 7         <title>I18N标签库</title>
 8     </head>
 9     <body>
10         <H4>
11             <c:out value="资源文件读取示例"></c:out>
12         </H4>
13         <hr>
14         <fmt:bundle basename="com/mysrc">
15             <c:out value="从message资源文件中得到的key为name的值为:"></c:out>
16             <fmt:message key="name"></fmt:message>
17         </fmt:bundle>
18         <hr>
19         <fmt:setBundle basename="com/mysrc" var="m" />
20         <fmt:message key="age" bundle="${m}"></fmt:message>
21         ${m}
22     </body>
23 </html>
复制代码

显示如下:

开始的时候我是将资源文件直接放在根目录下,结果总是读取不到数据,后来查看了很多人的博客,发现该资源文件必须经过编译后在 WEB-INF/classes 文件夹下才能使用,所以,要把这个文件放在src的某个包中,这样编译之后就会在 classes 文件夹出现了。

 

在看一个例子:

此例中,资源文件mysrc.properties 的内容: test=hello,{0},welcome to my blog. Today is {1}.

View Code
复制代码
 1 <%@ page language="java" pageEncoding="gbk"%>
 2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
 4 <jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
 5 <html>
 6     <head>
 7         <title>I18N标签库</title>
 8     </head>
 9     <body>
10         <H4>
11             <c:out value="<fmt:param>标签的使用"></c:out>
12         </H4>
13         <hr>
14         <fmt:bundle basename="com/mysrc">
15             <fmt:message key="test">             
16                 <fmt:param value="lixiaohui" />
17                 <fmt:param value="${date}" />
18             </fmt:message>
19         </fmt:bundle>
20     </body>
21 </html>
复制代码

显示结果:

如果把资源文件中 test 的值设置为: test=hello,{0},welcome to my blog. Today is {1,date}.

则指定了第二个动态变量是一个日期类型的对象,这是显示结果为:

 

 

转载:http://www.cnblogs.com/lihuiyy/archive/2012/02/27/2370031.html

分享到:
评论

相关推荐

    使用taglibs-i18n进行国际化处理范例

    `taglibs-i18n`是JSTL(JavaServer Pages Standard Tag Library)的一部分,提供了方便的标签来实现页面的国际化。本篇文章将深入探讨如何使用`taglibs-i18n`进行国际化处理,并通过一个名为`i18napp`的示例项目来...

    JSTL标签库的详细介绍

    Format标签库主要负责数据格式化和国际化(I18N)任务。以下是一些关键标签: - `&lt;fmt:formatDate&gt;`:将日期或时间对象转换为指定格式的字符串。 - `&lt;fmt:formatNumber&gt;`:将数字格式化为货币、百分比或其他形式。 ...

    JSTL1.2.5 taglibs-standard-jstlel-1.2.5.jar

    2. **I18N & Format(国际化和格式化标签库)**:支持日期、时间、数字的格式化以及多语言资源的处理,帮助开发者实现网站的国际化。 3. **XML(XML处理标签库)**:用于处理XML文档,包括解析、操作XML数据以及...

    jstl jar包

    - **I18N标签库**:用于处理国际化和本地化,如获取资源包中的消息,如 `&lt;fmt:setLocale&gt;` 和 `&lt;fmt:message&gt;`。 - **SQL标签库**:支持数据库查询,如执行SQL查询、参数绑定等,例如 `&lt;sql:query&gt;` 和 `...

    jstl开发使用手册

    Fmt标签库专注于国际化(I18N)和格式化问题,提供了一套用于处理日期、时间、数字和消息的工具。例如: - **** 和 ****:用于格式化和解析日期时间,支持多种格式和时区。 - **** 和 ****:用于格式化和解析数字...

    JSTL 导出Excel 可用例子

    JSTL由几个小的标签库组成,例如Core、I18N、XML等。在这个例子中,可能主要用到了Core库,因为它包含了处理数据输出的基本功能。不过,JSTL本身并不直接支持Excel文件的操作,所以我们需要引入额外的库,比如...

    JSP中常用的JSTL fmt(format格式化)标签用法整理

    fmt标签库是JSTL中用于国际化的标签库,它支持i18n(国际化)格式标准,为Web应用提供了数字、日期和消息等的格式化和解析功能。 fmt标签库包含以下三类标签: 1. 数字日期格式化标签 - 标签:根据区域设置或者...

    Struts标签-bean标签-源代码

    5. `&lt;bean:message&gt;`:这个标签用于获取资源包(Resource Bundle)中的消息,常用于国际化(i18n)。 ```jsp ``` 通过深入学习和理解bean标签的使用,你可以更高效地处理页面数据,并且能更好地控制JavaBean...

    Java Web整合开发王者归来

    - **JSP页面调用**:在JSP页面中,使用JSTL标签库来加载并显示这些资源文件的内容。 ```jsp ;charset=UTF-8" %&gt; &lt;%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %&gt; ...

    jatl fmt库

    `jatl fmt`库,实际上是JavaServer Pages Standard Tag Library (JSTL) 中的一部分,主要用于处理国际化(I18N)和格式化输出的需求。该库提供了丰富的标签来帮助开发者处理文本、日期、数字等数据类型的格式化,...

    王者归来 源代码(全部)

    这里的代码可能展示了如何创建和使用自定义标签库,例如自定义日期格式化、数据验证等。 9. **petstoreWeb**: 这可能是一个完整的Web应用示例,类似PetStore,用于展示Java Web开发的完整流程,包括用户界面、业务...

    JSP程序设计第2版代码.zip

    在这里,你会发现如何导入和使用JSTL库,如条件语句(if/else)、迭代(forEach)、XML处理(fmt、xml)等标签。 ### 第五章:Servlet与JSP的关系 `ch5`章节深入讲解了Servlet与JSP之间的关系,以及它们如何协同...

    学习SpringMVC——国际化+上传+下载详解

    6. 在JSP页面中,需要引入JSTL标签库,以便使用fmt标签进行国际化消息的输出。页面标签配置如下: ```jsp ***" %&gt; ``` 然后使用fmt标签显示国际化消息,如下: ```jsp &lt;fmt:message key="i18n.username" /&gt; ``` 通过...

    Struts1.x_SQL2005增删改查分页验证国际化

    8. **JSP页面**:使用Struts标签库(例如logic:iterate、bean:write等)显示数据,配合JSTL标签处理分页链接和验证错误。 9. **异常处理**:配置全局Exception处理,捕获并处理可能出现的异常,如数据库连接失败或...

    w3school_Java&JSP;教程

    - 国际化 (i18n) 是指使应用程序能够适应不同国家和地区的需求。这通常涉及到使用资源文件来存储文本和消息。 通过以上内容,我们可以看到 Java 和 JSP 教程覆盖了从基础知识到高级应用的广泛主题,适合不同程度的...

    JSP,Java Web试题

    - **知识点**: I18N (国际化) 与格式化标记用于支持多语言环境下的 Web 应用。 - **解析**: 第十七题的答案是 A.I18N与格式化标记。 ### 18. 错误的声明用法 - **知识点**: 在 `!.%&gt;` 中声明的变量具有页面作用域...

    一个Struts实现分页,增删改查,Tiles,国际化的DEMO

    在JSP页面中,通过JSTL的fmt标签库或者Struts的标签来引用这些资源文件中的文本,实现动态切换语言。 6. **DEMO项目结构** 该DEMO项目可能包括以下几个部分: - `struts-config.xml`:Struts的核心配置文件,定义...

    基于struts2的简单购书管理系统

    11. **国际化(i18n)**:Struts2支持多语言,通过资源文件(如messages.properties)可以实现应用的国际化。在购书系统中,可能有不同语言的提示信息。 这个简单的购书管理系统涵盖了Struts2框架的基础应用,包括...

    [论坛社区]基于mvnforum的jsp论坛_mvnforum.zip

    8. **国际化与本地化**:论坛可能支持多语言,了解如何实现i18n(国际化)和l10n(本地化)。 9. **模板引擎**:JSP可以被视为简单的模板引擎,理解其与更现代的模板引擎(如Freemarker、Thymeleaf)的区别。 10. **...

    struts相关资料

    - **常用拦截器**:如i18n(国际化)、exception(异常捕获)、validation(数据验证)、fileUpload(文件上传)、Params(参数设置)、servletConfig(Servlet API注入)、checkbox(数组保存)等。 - **自定义...

Global site tag (gtag.js) - Google Analytics