JSP 标准标签库 JSTL 2

时间:2022-11-01 23:24:31

国际化标签库

理解国际化的主要操作

可以使用国际化进行文本、日期的格式化操作


JSP 标准标签库 JSTL 2


JSP 标准标签库 JSTL 2


               Locale 是进行国际化操作中最重要的一个内容,通过不同的Locale 可以指定不同的区域,以取得不同的资源文件的信息

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<%
pageContext.setAttribute("date",new Date());
%>
<h3>中文日期显示:
<fmt:setLocale value="zh_CN"/>
<fmt:formatDate value="${date}"/>
</h3>
<h3>英文日期显示:
<fmt:setLocale value="en_US"/>
<fmt:formatDate value="${date}"/>
</h3>
</body>
</html>

中文日期显示:2011-11-9

中文日期显示:Nov 9, 2011

JSP 标准标签库 JSTL 2

此操作是解决乱码的

<%

        request.setCharacterEncoding("GBK");

%>

<fmt:requestEncoding value="GBK"/>  两个功能相同


JSP 标准标签库 JSTL 2

                 在进行国际化实现中最重要的部分就是资源文件的读取,所有的资源文件的后缀肯定是*.properties 文件,下面定义一个普通的资源文件: Message.properties

                 文件应该保存在classpath 之中,所以直接在/WEB-INF/classes 中建立即可

JSP 标准标签库 JSTL 2

name = nihao
info = \u6b22\u8fce{0}\u5149\u4e34
下面需要通过标签设置资源文件

JSP 标准标签库 JSTL 2

现在确实可以设置名称,但是有名称不够,因为要读取的是里面的信息,因为要读取的是里面的信息,所以另外还需标签的支持

JSP 标准标签库 JSTL 2

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<fmt:bundle basename="Message">
<fmt:message key="name" var="nameref"/>
</fmt:bundle>
<h3>姓名:${nameref}</h3>

<fmt:bundle basename="Message">
<fmt:message key="info" var="inforef">
<fmt:param value="ABC"/>
</fmt:message>
</fmt:bundle>
<h3>信息:${inforef}</h3>
</body>
</html>

JSP 标准标签库 JSTL 2

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<fmt:setBundle basename="Message" var="msg"/>
<fmt:message key="name" var="nameref" bundle="${msg}"/>
<h3>姓名:${nameref}</h3>

<fmt:message key="info" var="inforef" bundle="${msg}">
<fmt:param value="gz"/>
</fmt:message>
<h3>信息:${inforef}</h3>
</body>
</html>
              此时,实际上也可以根据不同的资源进行划分,如果现在要实现
          <fmt:setLocale value="zh_CN"/> //中文的资源文件进行读取

JSP 标准标签库 JSTL 2


JSP 标准标签库 JSTL 2

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<fmt:formatNumber value="333939.39394" maxIntegerDigits="7"
maxFractionDigits="3" groupingUsed="true" var="num"/>
<h3>格式化数字: ${num}</h3>

<fmt:formatNumber value="333939.39394" pattern="##.###E0" var="num"/>
<h3>科学计数法: ${num}</h3>
</body>
</html>
在JST 之中除了可以将数字格式化之外,也可以进行反格式化的操作

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
    <fmt:parseNumber value="3,222,438.3803" var="num"/>
    <h3>反格式化的数字: ${num }</h3>
    
    <fmt:parseNumber value="3.233E4" pattern="##.###E0" var="num"/>
    <h3>反科学计数法: ${num }</h3>
    
    <fmt:parseNumber value="3.3%" pattern="00%" var="num"/>
    <h3>反百分比: ${num }</h3>
</body>
</html>

JSP 标准标签库 JSTL 2

JSP 标准标签库 JSTL 2

JSP 标准标签库 JSTL 2


<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<%
    pageContext.setAttribute("dateref",new Date());
%>
<fmt:formatDate value="${dateref}" type="both" dateStyle="medium"
    timeStyle="default" var="date"/>
<h3>default显示日期的时间: ${date}</h3>

<fmt:formatDate value="${dateref}" type="both" dateStyle="short"
    timeStyle="short" var="date"/>
<h3>short显示日期的时间: ${date}</h3>

<fmt:formatDate value="${dateref}" type="both" dateStyle="medium"
    timeStyle="medium" var="date"/>
<h3>medium显示日期的时间: ${date}</h3>

<fmt:formatDate value="${dateref}" type="both" dateStyle="long"
    timeStyle="long" var="date"/>
<h3>long显示日期的时间: ${date}</h3>

<fmt:formatDate value="${dateref}" type="both" dateStyle="full"
    timeStyle="full" var="date"/>
<h3>full显示日期的时间: ${date}</h3>

<fmt:formatDate value="${dateref}" type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒"
var="date"/>
<h3>自定义格式显示日期的时间: ${date}</h3>
</body>
</html>


default显示日期的时间: 2011-11-10 2:21:54

short显示日期的时间: 11-11-10 上午2:21

medium显示日期的时间: 2011-11-10 2:21:54

long显示日期的时间: 2011年11月10日 上午02时21分54秒

full显示日期的时间: 2011年11月10日 星期四 上午02时21分54秒 CST

自定义格式显示日期的时间: 2011年11月10日 02时21分54秒169毫秒

JSP 标准标签库 JSTL 2

  反日期格式化

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<fmt:parseDate value="2011年11月10日 星期四 上午02时21分54秒 CST" type="both" dateStyle="full" timeStyle="full" var="date"/>
<h3>字符串变为日期: ${date}</h3>

<fmt:parseDate value="2011年11月10日 02时21分54秒169毫秒" type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" var="date"/>
<h3>字符串变为日期: ${date}</h3>
</body>
</html>

字符串变为日期: Thu Nov 10 02:21:54 CST 2011

字符串变为日期: Thu Nov 10 02:21:54 CST 2011

 
JSP 标准标签库 JSTL 2

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<%
pageContext.setAttribute("dateref",new Date());
%>
<fmt:timeZone value="HST">
<fmt:formatDate value="${dateref}" type="both" dateStyle="full"
timeStyle="full" var="date"/>
</fmt:timeZone>
<h3>FULL 显示日期的时间: ${date }</h3>
</body>
</html>

FULL 显示日期的时间: 2011年11月9日 星期三 上午08时34分31秒 HST 

标签就是对类的封装


小结

通过国际化显示标签可以方便的完成资源文件的读取,以及对文字、日期、数字的格式化操作