java:jsp: ResourceBundle国际化多语言
java提供了一个资源类java.util.ResourceBundle来试下多国语言版本。其实ResourceBundle只是一个抽象的类,她有两个子类:ListResourceBundle,和,PropertyResourceBundle.前一个子类需要编写不同的国家语言信息放置在对象类中,下面将实例演示,后一个子类是需要编写不同国家语言的文件后缀为.properties()来存放语言信息,这部分内容读者可以在国际化标签以及Struts时了解到。例如,存放在RES_zh_EN.propertieh和存放英文的RES_en_US.properties资源文件.
package cn.com.resouce;
import java.util.ListResourceBundle; public class RES_zh_CN extends ListResourceBundle { static final Object[][] contents = new String[][]{
{"version","这是中文版"},
{"title","中文版本"},
{"index","首页"},
{"news","新闻"},
{"life","生活"},
{"sports","体育"},
{"entertainment","娱乐"}
}; @Override
protected Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
} }
package cn.com.resouce;
import java.util.ListResourceBundle; public class RES_en_US extends ListResourceBundle { //创建对应的中文文本信息 static final Object[][] contents = new String[][]{ {"version","this is english"},
{"title","english"},
{"index","index"},
{"news","news"},
{"life","life"},
{"sports","sports"},
{"entertainment","entertainment"}
}; @Override
protected Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
} }
select.jsp
<%@ page language="java" contentType="text/html; charset=utf8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>语言选择</title>
</head>
<body> <form action="multiLanguage.jsp" method="get">
<select name="language">
<option name="default">默认</option>
<option value="chinese">中文</option>
<option value="english">English</option>
</select>
<input type="submit" value="提交">
</form> </body>
</html>
language.jsp
<%@ page language="java" contentType="text/html; charset=utf8"%>
<%@ page import="java.util.ResourceBundle,java.util.Locale" %>
<%
String language = request.getParameter("language");
//默认语言,浏览器会根据请求中所包含的Accept language来辨别默认的何种语言
ResourceBundle res = ResourceBundle.getBundle("cn.com.resouce.RES");
//中文版本的显示
if(language.equals("chinese"))
{
res = ResourceBundle.getBundle("cn.com.resouce.RES", new Locale("zh","CN"));
}
if(language.equals("english"))
{
res = ResourceBundle.getBundle("cn.com.resouce.RES", new Locale("en", "US"));
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><%=res.getString("title") %></title>
</head>
<body> <%=res.getString("version") %>
<hr>
<%=res.getString("index") %> | <%=res.getString("news") %> |<%=res.getString("life") %>
| <%=res.getString("sports") %> | <%=res.getString("entertainment") %> </body>
</html>
java:jsp: ResourceBundle国际化多语言的更多相关文章
- java.util.ResourceBundle国际化用法详解
java.util.ResourceBundle国际化用法详解 初识国际化和ResourceBundle 这个类主要用来解决国际化和本地化问题.国际化和本地化可不是两个概念,两者都是一起出现的.可以说 ...
- 国际化,java.util.ResourceBundle使用详解
java.util.ResourceBundle使用详解 一.认识国际化资源文件 这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的 ...
- 【转】java.util.ResourceBundle使用详解
原文链接:http://lavasoft.blog.51cto.com/62575/184605/ 人家写的太好了,条理清晰,表达准确. 一.认识国际化资源文件 这个类提供软件国际化的捷径.通 ...
- java.util.ResourceBundle使用详解
java.util.ResourceBundle使用详解 一.认识国际化资源文件 这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的 ...
- java.util.ResourceBundle使用详解(转)
java.util.ResourceBundle使用详解 一.认识国际化资源文件 这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的 ...
- java.util.ResourceBundle
转载自: http://lavasoft.blog.51cto.com/62575/184605 这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译 ...
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...
- java 中 ResourceBundle 使用 国际化使用
java 中 ResourceBundle 使用 可以根据以下类进行获取国际化文件: package org.mybatis.generator.internal.util.messages; imp ...
- java开发中国际化
1 静态文本的国际化,就是比如页面中中文显示用户名就是用户名,用于显示就是 username. 其中静态文件命名遵循:基础名_语言简称_国家简称.properties 需要使用的类是 1)import ...
随机推荐
- Time-series Storage Layer Time Series Databases 时间序列
w 关于时间序列数据库的思考-CSDN.NET http://www.csdn.net/article/2015-07-13/2825192 存储和处理时间序列数据(“Time Series Da ...
- 如何枚举 Windows 顶级桌面窗口?
bool is_top_level_window(HWND hwnd) { if (!IsWindow(hwnd)) return false; DWORD dw_style = GetWindowL ...
- QBuffer简单操作(被看做一个标准的可随机访问的文件,支持信号)
Qt中通过QBuffer类我们可以使用io的方式访问.操作QByteArray中的内容.此时,QByteArray被看做一个标准的可随机访问的文件.例如: QBuffer buffer; char c ...
- PHP的文件下载
1.通过header头部下载文件 header("Content-length: ".filesize($filename)); //指定文件下载的大小 header(' ...
- sql获取该周的开始结束日期
mssql函数 IF EXISTS ( SELECT 1 FROM sysobjects WHERE name = 'fn_GetWeekDate') DROP FUNCTION fn_GetWeek ...
- 调用settings.py的配置信息作为全局使用
项目中一些比较零散的信息可以保存在数据库,也可以保存在settings.py里面 并且这些变量也可以像引用数据里面的数据使用, 可以把信息保存在settings.py里面,也可以保存在数据 ...
- Kattis - abc 【水】
题意 给出三个数,然后给出一个顺序,有ABC三个字母构成, A是最大的数字 B是中间的数字 C是最小的数字 根据 ABC的顺序 给出 数字的顺序 思路 先排序一下,然后用 MAP 双向标记一下 AC代 ...
- 【后缀数组之SA数组】【真难懂啊】
基本上一搜后缀数组网上的模板都是<后缀数组——处理字符串的有力工具>这一篇的注释,O(nlogn)的复杂度确实很强大,但对于初次接触(比如窝)的人来说理解起来也着实有些困难(比如窝就活活好 ...
- C语言中auto,register,static,const,volatile的区别
1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...
- 每天一个Linux命令(45)lsof命令
lsof命令用于查看你进程打开的文件,端口(TCP.UDP),找回/恢复删除的文件,打开文件的进程. (1)用法: 用法: lsof [参数] [文件] (2)功 ...