JavaWeb学习记录(二十一)——国际化处理
name=mName
pass=mPass
login=mLogin
reset=mReset
name=\u7528\u6237\u540D
pass=\u5BC6\u7801
login=\u767B\u5F55
reset=\u91CD\u7F6E
name=Name
pass=Pass
login=Login
reset=Reset
@Test
public void test1(){
ResourceBundle bundle=ResourceBundle.getBundle("hytc", Locale.CHINA);
String userName=bundle.getString("username");
System.out.println(userName);
}
}
<table>
<tr>
<td>
<fmt:bundle basename="hytc">
<fmt:message key="name"/>
</fmt:bundle>
</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td>
<fmt:bundle basename="hytc">
<fmt:message key="pass"/>
</fmt:bundle>
</td>
<td>
<input type="password" name="pass"/>
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<fmt:bundle basename="hytc">
<fmt:message key="login" var="login" scope="page"/>
</fmt:bundle>
<fmt:bundle basename="hytc">
<fmt:message key="reset" var="reset" scope="page"/>
</fmt:bundle>
<input type="submit" value="${login}" style="margin-right: 50px"/>
<input type="reset" value="${reset}"/>
</td>
</tr>
</table>
</div>
hytc.test.name=mName
hytc.test.pass=mPass
hytc.test.login=mLogin
hytc.test.reset=mReset
hytc.test.name=\u7528\u6237\u540D
hytc.test.pass=\u5BC6\u7801
hytc.test.login=\u767B\u5F55
hytc.test.reset=\u91CD\u7F6E
hytc.test.name=Name
hytc.test.pass=Pass
hytc.test.login=Login
hytc.test.reset=Reset
<table>
<tr>
<td>
<fmt:bundle basename="hytc">
<fmt:message key="hytc.test.name"/>
</fmt:bundle>
</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td>
<fmt:bundle basename="hytc">
<fmt:message key="hytc.test.pass"/>
</fmt:bundle>
</td>
<td>
<input type="password" name="pass"/>
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<fmt:bundle basename="hytc" prefix="hytc.test.">
<fmt:message key="login" var="login" scope="page"/>
</fmt:bundle>
<fmt:bundle basename="hytc" prefix="hytc.test.">
<fmt:message key="reset" var="reset" scope="page"/>
</fmt:bundle>
<input type="submit" value="${login}" style="margin-right: 50px"/>
<input type="reset" value="${reset}"/>
</td>
</tr>
</table>
</div>
<fmt:message key="msg" bundle="${bname }">
<fmt:param value="zsf"/>
<fmt:param>哈哈</fmt:param>
</fmt:message>
</div>
<fmt:message>:显示消息资源文件中指定key的消息,支持带参数消息
<fmt:setLocale value="locale"
[variant="variant"]
[scope="{page|request|session|application}"] />
(2)<fmt:setBundle>
<fmt:setBundle>标签用于根据<fmt:setLocale>标签设置的本地化信息创建一个资源包(ResourceBundle)实例对象,并将其绑定到一个Web域的属性上。
标签的语法格式如下:
<fmt:setBundle basename="basename"
[var="varName"]
[scope="{page|request|session|application}"] />
(3)<fmt:bundle>标签
<fmt:bundle>标签与<fmt:setBundle>标签的功能类似,但它创建的ResourceBundle实例对象只在其标签体内有效。
<fmt:bundle basename="basename“ >
body content
</fmt:bundle>
(4)<fmt:message>标签
<fmt:message>标签用于从一个资源包中读取信息并进行格式化输出。
<fmt:message key="messageKey"
[bundle="resourceBundle"]
[var="varName"] [scope="{page|request|session|application}"] />
(5)<fmt:param>标签
<fmt:param>标签用于为格式化文本串中的占位符设置参数值,它只能嵌套在<fmt:message>标签内使用。
语法1,用value属性指定参数值:
<fmt:param value="messageParameter" />
语法2,在标签体中指定参数的值的情况:
<fmt:param>
body content
</fmt:param>
(6)<fmt:formatDate>标签
<fmt:formatDate>标签用于对日期和时间按本地化信息进行格式化,或对日期和时间按化为JSP页面作者自定义的格式进行格式化。语法格式如下:
<fmt:formatDate value="date"
[type="{time|date|both}"]
[dateStyle="{default|short|medium|long|full}"]
[timeStyle="{default|short|medium|long|full}"]
[pattern="customPattern"]
[timeZone="timeZone"]
[var="varName"]
[scope="{page|request|session|application}"] />
(7)<fmt:parseDate>标签
<fmt:parseDate>标签与<fmt: formatDate >标签的作用正好相反,它用于将一个表示日期和时间的字符串解析成java.util.Date实例对象.
语法1,没有标签体的情况:
<fmt:parseDate value="dateString"
[type="time|date|both"]
[dateStyle="default|short|medium|long|full"]
[timeStyle="default|short|medium|long|full"]
[pattern="customPattern"]
[timeZone="timeZone"]
[parseLocale="parseLocale"]
[var="varName"]
[scope="{page|request|session|application}"] />
(8)<fmt:formatNumber>标签
<fmt:formatNumber>标签用于将数值、货币或百分数按本地化信息进行格式化,或者按JSP页面作者自定义的格式进行格式化。
<fmt:formatNumber value="numericValue"
[type="{number|currency|percent}"]
[pattern="customPattern"]
[currencyCode="currencyCode"]
[currencySymbol="currencySymbol"]
[groupingUsed="{true|false}"]
[maxIntegerDigits="maxIntegerDigits"]
[minIntegerDigits="minIntegerDigits"]
[maxFractionDigits="maxFractionDigits"]
[minFractionDigits="minFractionDigits"]
[var="varName"]
[scope="{page|request|session|application}"] />
(9)<fmt:parseNumber>标签
<fmt:parseDate>标签与<fmt: formatNumber >标签的作用正好相反,它用于将一个按本地化方式被格式化后的数值、货币或百分数解析为数值
语法1,没有标签体的情况:
<fmt:parseNumber value="numericValue"
[type="{number|currency|percent}"]
[pattern="customPattern"]
[parseLocale="parseLocale"]
[integerOnly="{true|false}"]
[var="varName"
[scope="{page|request|session|application}"] />
六、日期应用的案例
<div>
<%
request.setAttribute("date", new Date(System.currentTimeMillis()) );
%>
<!-- 1.日期格式输出 -->
<fmt:formatDate value="${date }"/><br/>
<!-- 2.日期格式输出 时间格式 9:49:34 AM -->
<fmt:formatDate value="${date }" type="time"/><br/>
<!-- 2.日期格式输出 日期格式Mar 31, 2015 -->
<fmt:formatDate value="${date }" type="date"/><br/>
<!-- 2.日期格式输出 日期加时间格式:Mar 31, 2015 9:49:34 AM -->
<fmt:formatDate value="${date }" type="both"/><br/>
<!-- 3.日期格式输出 日期加时间格式:Mar 31, 2015 9:49:34 AM short|medium|long|full -->
<fmt:formatDate value="${date }" type="both" dateStyle="short"/><br/>
<fmt:formatDate value="${date }" type="both" dateStyle="medium"/><br/>
<fmt:formatDate value="${date }" type="both" dateStyle="long"/><br/>
<fmt:formatDate value="${date }" type="both" dateStyle="full"/><br/>
<!-- 4.日期格式输出 日期加时间格式:Mar 31, 2015 9:49:34 AM short|medium|long|full -->
<fmt:formatDate value="${date }" type="both" timeStyle="short"/><br/>
<fmt:formatDate value="${date }" type="both" timeStyle="medium"/><br/>
<fmt:formatDate value="${date }" type="both" timeStyle="long"/><br/>
<fmt:formatDate value="${date }" type="both" timeStyle="full"/><br/>
<!-- 5.日期格式输出 -->
<fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/><br/>
<fmt:formatDate value="${date }" pattern="yyyy年MM月dd日 HH时mm分ss秒"/><br/>
<!-- 时区 -->
<%
TimeZone tz=TimeZone.getDefault();
request.setAttribute("tz", tz);
%>
<fmt:formatDate value="${date }" timeZone="${tz }" var="st" scope="page"/>
直接使用:
${st}
</div>
<!-- 日期处理 -->
<fmt:parseDate var="t1" pattern="yyyy-MM-dd HH:mm:ss">2015-3-31 10:36:47</fmt:parseDate>
<fmt:parseDate var="t2" value="2015-3-31 10:36:47" pattern="yyyy-MM-dd HH:mm:ss"/>
<!-- 输出 -->
1.${t1}
<br/>
2.${t2}
七、数字转换的案例
<!-- 数字处理 -->
<!-- 1.钱-->
<fmt:formatNumber value="12"/>
<br/>
<fmt:formatNumber value="12" type="currency"/>
<br/>
<fmt:formatNumber value="12" type="currency" currencySymbol="$"/>
<fmt:formatNumber value="12" type="currency" currencySymbol="¥"/>
<br/>
<%
//输出所有国家的货币的编码与符号
Currency china = Currency.getInstance(Locale.CHINA);
String code = china.getCurrencyCode();
String symbol= china.getSymbol();
pageContext.setAttribute("code", code);
pageContext.setAttribute("symbol", symbol);
%>
<br/>
编码:${code},符号:${symbol}
<br/>
<fmt:formatNumber value="12" type="currency" currencyCode="${code}"/>
<%
//输出所有国家的货币的编码与符号
Currency riben = Currency.getInstance(Locale.JAPAN);
String rcode = riben.getCurrencyCode();
String rsymbol= riben.getSymbol();
pageContext.setAttribute("rcode", rcode);
pageContext.setAttribute("rsymbol", rsymbol);
%>
<br/>
编码:${rcode},符号:${rsymbol}
<br/>
<fmt:formatNumber value="12" type="currency" currencyCode="${rcode}" currencySymbol="${rsymbol }"/>
<br/>
<h1>百分比</h1>
1:<fmt:formatNumber value="0.183856" type="percent" maxIntegerDigits="2" maxFractionDigits="3"/>
<h1>数字</h1>
2:<fmt:formatNumber value="0.12" type="number" var="n" scope="page"/>
<br/>
${n}
<h1>自定义的格式</h1>
<!-- 自己查数字的api 看这个格式什么含义 -->
1:<fmt:formatNumber value="1101.183856" pattern="#,#00.0#"/>
<h2>parseNumber</h2>
<!-- 把百分比转换成数字 -->
<fmt:parseNumber value="12%" type="percent"/>
<br/>
<fmt:parseNumber value="$12" type="currency" parseLocale="<%=Locale.US %>" var="sn" scope="page"/>
<br/>
${sn }
JavaWeb学习记录(二十一)——国际化处理的更多相关文章
- javaweb学习总结(三十一)——国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- javaweb学习总结(二十一)——JavaWeb的两种开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...
- javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)
一:servlet开发入门 servlet是sun公司一门开发动态web资源的技术,下面编写一个servlet入门程序: 1:在tomcat服务器webapps目录下新建firstServlet目录, ...
- Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客
==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...
- 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用
目录 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用 21.1 read命令键盘读取变量的值 21.1.1 read常用见用法及参数 21.2 流程控制语句if 21.2 ...
- Material Calendar View 学习记录(二)
Material Calendar View 学习记录(二) github link: material-calendarview; 在学习记录一中简单翻译了该开源项目的README.md文档.接下来 ...
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- 2.VUE前端框架学习记录二
VUE前端框架学习记录二:Vue核心基础2(完结)文字信息没办法描述清楚,主要看编码实战里面,有附带有一个完整可用的Html页面,有需要的同学到脑图里面自取.脑图地址http://naotu.baid ...
- (C/C++学习笔记) 二十一. 异常处理
二十一. 异常处理 ● 异常的概念 程序的错误通常包括:语法错误.逻辑错误.运行异常. 语法错误指书写的程序语句不合乎编译器的语法规则,这种错误在编译.连接时由编译器指出. 逻辑错误是指程序能顺利运行 ...
随机推荐
- 踏着前人的脚印学Hadoop——RPC源码
A simple RPC mechanism.A protocol is a Java interface. All parameters and return types must be one ...
- powershell玩转litedb数据库
powershell可以玩nosql数据库吗?答案是肯定的.只要这个数据库兼容.net,就可以很容易地被powershell使用. 发文初衷:世界上几乎没有讲powershell调用nosql的帖子, ...
- 推荐可以代替Visio的HTML开发的作图工具:ProcessOn
过去作图的时候一直都是在用visio,每一次换了电脑使用都要重新安装,这大家都知道,最头疼的就是激活问题,曾经因为激活问题我“找遍了”正个互联网,最后还没找到...从08年开始到现在,visio用了这 ...
- 分享Windows Server 2012 R2的获取正版密钥方法
然后使用“我有ISIC卡”验证,目前可用号码:S420546009858. 分享Windows Server 2012 R2的获取正版密钥方法. 首先登陆dreamspark注册一个账号https:/ ...
- Ogre中Mesh的加载过程详述
转自:http://blog.csdn.net/yanonsoftware/article/details/1031891 如果新开始写一个3D渲染引擎,Mesh应该是一个很好的切入点.当一个看似简单 ...
- oracle 之关键字exists
-----------------------------------------------------------------------SQL中EXISTS的用法---------------- ...
- (spring-第12回【IoC基础篇】)JavaBean的属性编辑器
在spring实例化bean的最后阶段,spring利用属性编辑器将配置文件中的文本配置值转换为bean属性的对应值,例如: 代码0011 <bean id="car" cl ...
- php大力力 [022节]php编程要有一种态度:渴望遇见麻烦
2015-08-27 php大力力022.php编程要有一种态度:渴望遇见麻烦 不能一遇到问题和麻烦,就烦躁焦躁. 写程序,写代码,调试实验就是天天遇见不可预期的错误bug,这是常态.老生常谈,要适应 ...
- HDU 4349 Xiao Ming's Hope
有这样一个性质:C(n,m)%p=C(p1,q1)*C(p2,q2).......%p,其中pkpk-1...p1,qkqk-1...q1分别是n,m在p进制下的组成. 就完了. #include&l ...
- vs常用调试快捷键
vs2005常用调试快捷键 ,开发起来更加的方面,虽然现在vs2008发布了,但vs2005还是一个主流,个人还是用vs2005,调试代码也多. F6: 生成解决方案Ctrl+F6: 生成当前项目F7 ...