JavaWeb的国际化(17/4/8)

时间:2021-02-08 09:46:57
 

国际化的缺点:

  因为文字不同,所以带来的排版问题一样严重,通常都是重新在写一个网站反而更加清晰,快捷

1:需要从浏览器中获取到浏览器语言(Accept—Language)

2:利用locale获取

3:加载配置文件(配置文件写在src目录下,且命名需要规范化——res_zh_CN.properties)

4:Java类源码

JavaWeb的国际化(17/4/8)
 1 import java.util.Locale;
2 import java.util.ResourceBundle;
3
4
5 import org.junit.Test;
6
7
8 /**
9 * 我们现在写两个配置文件,一个文件中存放中文信息,另一个存放英文信息
10 * 我们使用一个类,来通过语言环境,最终识别加载哪一个文件的信息:ResourceBundle
11 * 什么语言环境:Locale
12 * > zh_CN
13 * > en_US
14 * new Locale("zh", "CN");
15 * Locale.getDefault();
16 * Locale.US
17 *
18 * 资源文件名称的格式:基本名称+Locale部份+.properties
19 * 例如:res_zh_CN.properties,其中基本名称为res,而zh_CN是Locale部份
20 * 必须所有的资源文件基石名称要相同!不同之处就是Locale部件
21 */
22 public class Demo1 {
23 @Test
24 public void fun1() {
25 Locale locale = Locale.US;
26 // 得到ResourceBundle
27 // 第一个参数是:基本名称
28 // 第二个参数是:Locale
29 ResourceBundle rb = ResourceBundle.getBundle("res", locale);
30 // 使用ResourceBundle来获取资源信息
31 System.out.println(rb.getString("username"));
32 System.out.println(rb.getString("password"));
33 System.out.println(rb.getString("login"));
34 }
35 }
36 5:jsp源码
37 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
38 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
39 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
40 <html>
41 <head>
42 <title>My JSP 'login.jsp' starting page</title>
43 <meta http-equiv="pragma" content="no-cache">
44 <meta http-equiv="cache-control" content="no-cache">
45 <meta http-equiv="expires" content="0">
46 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
47 <meta http-equiv="description" content="This is my page">
48 <!--
49 <link rel="stylesheet" type="text/css" href="styles.css">
50 -->
51 </head>
52 <body>
53 <%--
54 把与语言相关的所有字符串都写成变量!!!
55 --%>
56 <%
57 /*
58 1. 获取Locale,这是由客户端的浏览器提供的Locale
59 2. 创建ResourceBundle
60 3. 把所有的语言信息使用rb.getString("xxx")来替换!
61 */
62 Locale locale = request.getLocale();
63 ResourceBundle rb = ResourceBundle.getBundle("res"
, locale);
64 %>
65 <h1><%=rb.getString("login") %></h1>
66 <form action="" method="post">
67 <%=rb.getString("username") %>:<input type="text" name="username"/><br/>
68 <%=rb.getString("password") %>:<input type="password" name="password"/><br/>
69 <input type="submit" value="<%=rb.getString("login") %>"/>
70 </form>
71 </body>
72 </html>

JavaWeb的国际化(17/4/8)的更多相关文章

  1. Javaweb之国际化

    Javaweb之国际化 一.前言 软件的本地化:一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯. 软件的国际化:软件开发时,让它能支持多个国家和地区的本地化应用.使得应 ...

  2. 深入分析JavaWeb Item22 -- 国际化&lpar;i18n&rpar;

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同一时候应对世界不同地区和国家的訪问,并针对不同地区和国家的訪问.提供对应的.符合来訪者阅读习惯的页面或数据. 国际化(international ...

  3. JavaWeb的国际化

    国际化 1.国际化开发概述 1.1.软件的国际化 软件开发时,要使它能同时应对世界不同地区和国家的方法,并针对不同地区和国家的方法,提供相应的,符合来访者阅读习惯的页面或数据 国际化简称:i18n : ...

  4. JavaWEB开发国际化

    1.国际化开发概述 )软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. )国际化又称为 i18n:inter ...

  5. JavaSE之概述

    作此篇是鉴于个人Java学习之需要,也便于日后进一步归纳与复习.  规定:      1 Java全面概述[囊括 Java工作原理,JVM方面知识,关键字(final,static,public,pr ...

  6. Javaweb学习笔记——(二十)——————Javaweb监听器、国际化

    Javaweb监听器     三大组件         *Servlet         *Listener         *Filter Listener:监听器         1.初次相见:A ...

  7. javaweb&lpar;三十一&rpar;——国际化&lpar;i18n&rpar;

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  8. javaweb基础&lpar;31&rpar;&lowbar;国际化&lpar;i18n&rpar;

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  9. javaweb学习总结&lpar;三十一&rpar;——国际化&lpar;i18n&rpar;

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

随机推荐

  1. DataGridView 使用CheckBox选中行

    在winform中使用checbox很多.上次那个项目里就用到了,写了一个不太好用,后来翻阅了一下微软提供的样码,我觉得有必要给大家分享一下. // This event handler manual ...

  2. jQuery&period;each&lpar;&rpar; 的5个案例

    1.基本的jQuery.each实例 看看 each() 函数是如何处理一个 jQuery 对象的.首先选取所有的a标签 并且打印出他们的href属性. 需要注意的是, 在 each() 当中使用 j ...

  3. OpenStack协同并发 eventlet

    今天听easystack一哥们讲nova协同并发,结合自己之前的认识.回顾一下openstack eventlet. OpenStack作为热门的开源云平台,本身代码当然得支持高并发. 首先讲讲pyt ...

  4. 生成getter&lpar;&rpar;、setter&lpar;&rpar;方法去掉变量前缀

    当定义的变量名有前缀但是不想在生成它的getter()和setter方法的时候让前缀出现,比如今天项目的部分代码: public class Crime { private UUID mId; //标 ...

  5. Android JNI入门第一篇——HelloJni

    android支持使用NDK开发C程序,关于配置NDK环境问题应该不用再赘述了,这个网上有很多,这里通过一篇实例来讲述简单的JNI开发,大家可以参考这篇文章(Get Your Eclipse-Inte ...

  6. eclipse之The currrently displayed page contains invalid values错误

    现象: eclipse的preferences里面须要保存密码,保存报错Could Not Accept ChangesThe currrently displayed page contains i ...

  7. 经典算法题每日演练——第八题 AC自动机

    原文:经典算法题每日演练--第八题 AC自动机 上一篇我们说了单模式匹配算法KMP,现在我们有需求了,我要检查一篇文章中是否有某些敏感词,这其实就是多模式匹配的问题. 当然你也可以用KMP算法求出,那 ...

  8. Flashing Back a Failed Primary Database into a Physical Standby Database(闪回FAILOVER失败的物理备库)

    文档操作依据来自官方网址:https://docs.oracle.com/cd/E11882_01/server.112/e41134/scenarios.htm#SBYDB4888 闪回FAILOV ...

  9. Python的随机数模块

    random模块中几个随机函数用法. 引入random模块: import random 1.random.random() 此函数用于生成一个0到1的随机浮点数:0 <= n < 1.0 ...

  10. 【转】repo介绍

    Android 使用 Git 作为代码管理工具,开发了 Gerrit 进行代码审核以便更好的对代码进行集中式管理,还开发了 Repo 命令行工具,对 Git 部分命令封装,将百多个 Git 库有效的进 ...