java web项目中资源国际化
有一些网站会有语言栏选项:
选择英文,内容就显示为英文;
选择中文,内容就显示文中文。
这里就用到了国际化资源。
先看效果图:
步骤:
1.建立资源包:
mess_en_US.properties (英文)
mess_ko_KR.properties (韩文)
mess_zh_CN.properties (中文)
...以及其他国家语言的资源文件。
文件内容如下:
mess_en_US.properties:
mess_ko_KR.properties:
mess_zh_CN.properties:
这三个文件放置在src目录下,页面和后台可以直接引用使用:
2.页面代码:
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@page import="java.util.Locale"%>
<%@page import="java.util.Date"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String ctxPath = request.getContextPath();
request.setAttribute("ctxpath", ctxPath);//项目根路径
%>
<!-- 动态获取,显示中英文切换 -->
<%
String code = request.getParameter("code");
//HttpSession session = request.getSession();
if(code!=null){
if("en".equals(code)){ //英文
session.setAttribute("locale", new Locale("en", "US"));
}
else if("zh".equals(code)){ //中文
session.setAttribute("locale", new Locale("zh", "CN"));
}
else if("ko".equals(code)){ //韩文
session.setAttribute("locale", new Locale("ko", "KR"));
}
}else{ //默认为中文
session.setAttribute("locale", new Locale("zh", "CN"));
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="${ctxpath}/js/jquery-1.11.3.min.js"></script>
<title>国际化资源</title>
<style type="text/css">
/* 调整语言栏选项位置 */
.language{
position: absolute;
top: 4%;
right:0;
} /* 主页 */
.main{
width: 50%;
position: absolute;
left: 25%;
height: 100%;
} /* 内容 */
.content{
margin-left: 25%;
} /* 标题 */
.title{
display:block;
width: 250px;
margin: 0 auto;
text-align: center;
}
</style>
<script type="text/javascript">
$(function(){
$("#language").bind("change",function(){
window.location.href = "i18n_1.jsp?code="+this.value;
});
set_select_checked();
}); function set_select_checked(){
var language = "<%=session.getAttribute("locale")%>";
language = language.substring(0, 2);
var select = $("#language option"); for (var i = 0; i < select.length; i++){
if (select[i].value == language){
select[i].selected = true;
}
}
}
</script>
</head>
<body>
<div class="main">
<div class="language">
<span>语言:</span>
<select id="language">
<option value="zh">中文</option>
<option value="en">英文</option>
<option value="ko">韩文</option>
</select>
</div>
<br>
<!-- 在session范围内设置locale,便于在jsp中获取locale -->
<c:if test="${sessionScope.locale!=null }">
<fmt:setLocale value="${sessionScope.locale }"/>
</c:if>
<fmt:setBundle basename="mess"/>
<span class="title"><fmt:message key="hello"></fmt:message></span>
<div class="content">
<%-- <fmt:message key="salaryUnit"></fmt:message>
<fmt:formatNumber value="12"></fmt:formatNumber> --%>
<br><br>
<span><fmt:message key="menu"></fmt:message>:</span>
<ul>
<li><fmt:message key="profTeam"></fmt:message></li>
<li><fmt:message key="responsibility"></fmt:message></li>
<li><fmt:message key="contactUs"></fmt:message></li>
</ul>
</div>
</div>
</body>
</html>
页面使用JSTL标签显示国际化的内容。这个页面就实现了动态图所显示的效果(资源国际化)。
========================================
后台测试效果图:
后台测试类:
package test.locale; import java.util.Locale;
import java.util.ResourceBundle; public class GuojihuaTest { /**
* @param args
*/
public static void main(String[] args) {
//取得系统默认的国家/语言环境 Locale myLocale = Locale.ENGLISH;
//Locale localeUS = new Locale("en", "US"); //ko KR
Locale localeUS = new Locale("zh", "CN");
//根据指定国家/语言环境加载资源文件 ResourceBundle bundle = ResourceBundle.getBundle("mess" , localeUS); //打印从资源文件中取得的消息 System.out.println(bundle.getString("hello")); } }
java web项目中资源国际化的更多相关文章
- java web项目中打开资源文件中文乱码
1 java web项目中经常使用多模块管理.在某一个模块中添加了一些资源文件.但不是启动项目.有时候需要在程序中读取资源文件内容,打包后放到容器中就不能正常运行了.需要将所有资源文件放到启动项目的 ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- 对Java Web项目中路径的理解
第一个:文件分隔符 坑比Window.window分隔符 用\;unix采用/.于是用File.separator来跨平台 请注意:这是文件路径.在File f = new File(“c:\\hah ...
- java web 项目中 简单定时器实现 Timer
java web 项目中 简单定时器实现 Timer 标签: Java定时器 2016-01-14 17:28 7070人阅读 评论(0) 收藏 举报 分类: JAVA(24) 版权声明:本文为博 ...
- linux 下用renameTo方法修改java web项目中文件夹名称问题
经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服 ...
- Java Web项目中缺少Java EE 6 Libraries怎么添加
Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...
- Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- 在java web项目中编写自己的代码生成器
在java web项目中编写自己的代码生成器
- 在Java web项目中防止用户注销后使用浏览器中的“后退”按钮返回注销前页面
一背景 公司安全整改, 要求:系统中对于关键业务操作应确保使用浏览器"后退"功能无法回到上一步操作界面. 提供:凭证提供所有被检查系统关键业务操作后回退视频,视频显示关键业务操作后 ...
随机推荐
- Java并发包
刚看到一篇总结的比较全的JUC包总结,转载如下: 1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平台,java.util.con ...
- Ubuntu14.04下Mongodb的Java API编程实例(手动项目或者maven项目)
不多说,直接上干货! 若大家,不会安装的话,则请移步,随便挑选一种. Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04 ...
- CSS3背景 制作导航菜单综合练习题
CSS3背景 制作导航菜单综合练习题 小伙伴们,根据所学知识,使用CSS3实现下图的导航菜单效果 任务 1.制作导航圆角 提示:使用border-radius实现圆角 2.制作导航立体风格 提示:使用 ...
- RecyclerView的刷新和加载更多
1.RecyclerView :出现也不知道多久了,没怎么使用过,上次写的笔记乱七八糟的,再次仔细的整理下. 使用需加入依赖 compile 'com.android.support:recyc ...
- Golden Gate 概述
概述: 是什么?Oracle GoldenGate 提供异构环境间事务数据的实时.低影响的捕获.路由.转换和交付. 非侵入: 不建触发器,不建中间表,无需增量标记或时间戳字段 不在源表上进行数据查询 ...
- 性能优化实战-join与where条件执行顺序
昨天经历了一场非常痛苦的性能调优过程,但是收获也是刻骨铭心的,感觉对sql引擎的原理有了进一步认识. 问题起源于测试人员测一个多条件检索的性能时,发现按某个条件查询会特别慢.对应的sql语句简化为: ...
- 像素点的Hessian矩阵
最近开始学习图像处理相关知识,碰到对像素点求黑塞矩阵查了资料才搞懂. 给定一个图像f(x,y)上的一点(x,y).其黑塞矩阵如下: 因为导数的公式是f'(x)=(f(x+dx)-f(x))/dx在数字 ...
- windows下git server搭建
使用gitblit1.8搭建 首先要安装JDK 然后下载gitblit,这里给一个CSDN下载 https://download.csdn.net/download/nietzsche0/104826 ...
- Laravel 5.5 项目安装报错
错误一. [Composer\Exception\NoSslException] The openssl extension is required for SSL/TLS protection bu ...
- CF739E Gosha is hunting(费用流,期望)
根据期望的线性性答案就是捕捉每一只精灵的概率之和. 捕捉一只精灵的方案如下: 1.使用一个\(A\)精灵球,贡献为\(A[i]\) 2.使用一个\(B\)精灵球,贡献为\(B[i]\) 3.使用一个\ ...