JSTL(I18N)

I18N
用于编写国际化的web程序
taglib:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

1、<fmt:setLocale>
用于设置用户的本地语言,并将指定的locale保存到javax.servlet.jsp.jstl.fmt.local配置变量中
Config.find(pageContext,Config.FMT_LOCALE)可以获取locale属性
<fmt:setLocale value="locale" variant="variant" scope="page|request|session|application"/>
variant:供应商或者浏览器代码WIN ,MAX ,POSIX
一般都放在页首,其他标签可通过ServletRequest.getLocale()获取locale
<fmt:setLocale value="en"/>
<fmt:setLocale value="zh_CN"/>

2、<fmt:bundle>
创建其标签体使用的I18N本地上下文环境
<fmt:bundle basename="basename" prefix="prefix">
 body
</fmt:bundle>
basename:资源包的名称
prefix:指定在<fmt:message>标签的消息键前要添加的前缀


3、<fmt:setBundle>
创建一个I18N本地上下文环境,将他保存到范围变量或者javax.servlet.jsp.jstl.fmt.localizationContext配置变量中
<fmt:setBundle basename="basename" var="varname" scope=""/>
basename:资源包的基名
var:被导出的保存了本地上下文范围变量的名称,类型是javax.servlet.jsp.jstl.fmt.localizationContext

4、<fmt:message>
从资源包中查找一个指定键的值,用于显示本地化的信息
<fmt:message key="key" bundle="resourceBundle" var="varName" scope=""/>
<fmt:message key="key" bundle="resourceBundle" var="varName" scope="">
 <fmt:param>
</fmt:message>
<fmt:message bundle="resourceBundle" var="varName" scope=""/>
 key
 <fmt:param>
</fmt:message>

5、<fmt:param>
提供一个参数,供<fmt:message>使用
<fmt:param value="messageParameter"/>
<fmt:param>
 body content
</fmt:param>
可以用来替换message中的参数

6、<fmt:requeatEncoding>
设置请求的字符编码
<fmt:requestEncoding value="charsetName"/>
==request.setCharacterEncoding();

格式化标签

1、<fmt:timeZone>
指定时区,其标签体的时间将按此时区进行格式化或者解析
<fmt:timeZone value="timeZone"/>
 body content
</fmt:timeZone>
value:String或者TimeZone

2、<fmt:setTimeZone>
指定时区,并将其 保存到范围变量中,或者保存到javax.servlet.jsp.jstl.fmt.timeZone配置变量中
<fmt:setTimeZone value="timeZone" var="varName" scope=""/>
如果没有var实行,则时区被保存到javax.servlet.jsp.jstl.fmt.timeZone配置变量。

3.<fmt:formatNumber>
按照区域或者定制的方式将数字的值格式化为数字、货币、百分数

<fmt:formatNumber value="value" type="number|currency|percent" pattern="customPattern"
 currencyCode="code" currencySymbol="symbol" groupingUsed="true|false" maxIntegerDigits="max"
 minIntegerDigits="min" maxFractionDigits="max" minFractionDigits="min" var="varName" scope=""/>
<fmt:formatNumber type="number|currency|percent" pattern="customPattern"
 currencyCode="code" currencySymbol="symbol" groupingUsed="true|false" maxIntegerDigits="max"
 minIntegerDigits="min" maxFractionDigits="max" minFractionDigits="min" var="varName" scope="">
 value
</fmt:formatNumber>
pattern:String 自定义的格式化样式,优于type,java.text.DecimalFormat
currencyCode:String ISO 4271货币代码,用于格式化货币
currencySymbol:String 货币符号
groupingUsed:是否包含用于分组的分隔符,默认true
maxIntegerDigits:格式化输出的整数部分的最大位数


4.<fmt:parseNumber>
将已经格式化的字符串形式的数据、货币或百分数转换为数字类型,跟<fmt:formatNumber>作用相反
<fmt:parseNmber value="value" type"number|currency|percent" pattern="pattern"
 parseLocale="locale" integerOnly="true|false" var="varName" scope=""/>
<fmt:parseNumber  type"number|currency|percent" pattern="pattern"
 parseLocale="locale" integerOnly="true|false" var="varName" scope="">
 value
</fmt:parseNumber>
parseLocal:String or Locale
integerOnly:是否只解析数字值的整数部分,默认false

5.<fmt:formateDate>
按照地区或者定制的格式对时间和日期进行格式化
<fmt:formateDate value="value" type="date|time|both" dateStyle="default|short|medium|long|full"
 timeStyle="default|short|medium|long|full" pattern="pattern"
 timeZone="zone" var="varName" scope=""/>
pattern:String 自定义时间和日期的样式,必须出自java.text.SimpleDateFormat,一旦指定,则type,dateStyle,timeStyle将被忽略

6.<fmt:parseDate>
将已经格式化的字符串形式的时间和日期转换为日期类型
<fmt:parseDate value="value" type="time|date|both" dateStyle="" timeStyle="" pattern=""
 timeZone="" parseLocale="Locale" var="" scope=""/>
<fmt:parseDate type="time|date|both" dateStyle="" timeStyle="" pattern=""
 timeZone="" parseLocale="Locale" var="" scope="">
 value
</fmt:parseDate>


EX:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<html>
<head>
  <title>JSTL: Formatting/I18N Support -- Italian Locale Example</title>
</head>
<body bgcolor="#FFFFFF">
<h3>Italian Locale</h3>

<fmt:setLocale value="it_IT"/>
<fmt:setBundle basename="org.apache.taglibs.standard.examples.i18n.Resources" var="itBundle" scope="page"/>
<fmt:message key="greetingMorning" bundle="${itBundle}"/>

</body>
</html>


<fmt:setLocale value="de"/>
<fmt:bundle basename="org.apache.taglibs.standard.examples.i18n.Resources">
 <fmt:message>
  greetingMorning
 </fmt:message>
</fmt:bundle>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值