博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSTL I18N 格式标签库 使用之二_____读取消息资源
阅读量:5927 次
发布时间:2019-06-19

本文共 2613 字,大约阅读时间需要 8 分钟。

同样推荐一篇写的很详细的博客  http://blog.sina.com.cn/s/blog_4f925fc30101820u.html

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

<fmt:buddle> <fmt:setBuddle> <fmt:message> <fmt:param> 四个标签之间的嵌套关系大概是这个样子:

1 
2
3
4
5
6
7 8
9

第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 
5 6 7 I18N标签库 8 9 10

11
12

13

14
15
16
17
18

19
20
21 ${m} 22 23

显示如下:

开始的时候我是将资源文件直接放在根目录下,结果总是读取不到数据,后来查看了很多人的博客,发现该资源文件必须经过编译后在 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 
5 6 7 I18N标签库 8 9 10

11
12

13

14
15
16
17
18
19
20 21

显示结果:

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

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

 

 

转载地址:http://adevx.baihongyu.com/

你可能感兴趣的文章
JavaSe笔记01-关于数据类型
查看>>
Runc和CVE-2019-5736
查看>>
<译>米田嵌入
查看>>
PAT A1078
查看>>
宜人贷蜂巢API网关技术解密之Netty使用实践
查看>>
Linux 搭建 Ftp 服务
查看>>
django数据库自动重连
查看>>
告诉你微信域名被封的原因和防封方案
查看>>
2019.2.20 c++ 知识梳理
查看>>
98. Validate Binary Search Tree
查看>>
DOM 元素中的焦点管理
查看>>
分享一些好用的网站
查看>>
SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理
查看>>
第十二课时:渲染函数和JSX快速掌握
查看>>
聊聊flink的MemorySegment
查看>>
学习JavaScript循环下的async/await
查看>>
30秒的PHP代码片段(3)字符串-String & 函数-Function
查看>>
介紹敏捷方法: Scrum, Kanban or Lean?
查看>>
Web前端开发过程踩过的坑以及一些小方法技巧(持续更新)
查看>>
力扣(LeetCode)31
查看>>