zoukankan      html  css  js  c++  java
  • JSTL I18N 格式标签库 使用之二_____读取消息资源

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

    读取消息资源主要有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}.

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

  • 相关阅读:
    JS中encodeURIComponent在PHP中实现的办法_tdweb的博客,仅仅是个博客_百度空间
    废弃的java 爬虫代码
    c#实现Javascript的encodeURIComponent()函数
    Encode query with Python
    Chunked decoding in python
    python implemention javascript encodeURIComponent
    Java MongoDB : Insert a document
    tar zcvf ./xxx.tar.gz ./directory
    MyStringUtils test
    application/xwwwformurlencoded
  • 原文地址:https://www.cnblogs.com/lihuiyy/p/2370031.html
Copyright © 2011-2022 走看看