首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java ResourceBundle介绍「建议收藏」

public abstract class ResourceBundle extends Object 下列类的父类: ListResourceBundle, PropertyResourceBundle 资源束包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时,如 String ,程序可以从适合当前用户语言环境的资源束中装入它。以这种方式,可以写大部分独立于用户语言环境的程序代码,它与大部分资源束中的特定于语言环境的信息相隔离。 这使得编程可以: 容易本地化或翻译成不同的语言 一次处理多种语言环境 以后容易更改以支持更多的语言环境 一个资源束从概念上讲是相关的类集合,这些类是从 ResourceBundle 继承而来的。 ResourceBundle 的每个相关的子类有同一基名并加上标识它的语言环境的附加成分。例如,假设您的资源束命名为 MyResources。您写的第一个类可能是缺省的资源束,它与它的家族有同一个名字–MyResources 。也可按需要提供许多特定于语言环境的类:例如,可能为它提供一个德文的名字 MyResources_de。 ResourceBundle 的每个相关的子类包含同样的项目,但是项目已经为那个 ResourceBundle 子类描述的语言环境所翻译。例如,MyResources 和 MyResources_de 可能都有一个用在确认操作按钮上的 String 。在 MyResources 中,String 可能包含 OK ,在 MyResources_de 中,它可能包含 Gut。 如果对不同的国家有不同的资源,可做出规定:例如, MyResources_de_CH 是 Switzerland 的资源。如果仅想更改规定中的一些资源,可以这样做。 当您的程序需要特定于语言环境的对象时,它使用 getBundle 方法装入 ResourceBundle 类: ResourceBundle myResources = ResourceBundle.getBundle(“MyResources”, currentLocale); 第一个参数指定包含有疑问对象的资源束的家族名。第二个参数指定了期望的语言环境。getBundle 使用这两个参数来构造 ResourceBundle 子类的名字,它应按下面的方法装入。 资源束用不同的后缀查找类,根据(1) 期望的语言环境和 (2) 缺省的语言环境(基类), 以下面从更低级别(指定较多的)到父类级别(指定较少的)的顺序来查找: baseclass + “_” + language1 + “_” + country1 + “_” + variant1 baseclass + “_” + language1 + “_” + country1 baseclass + “_” + language1 baseclass baseclass + “_” + language2 + “_” + country2 + “_” + variant2 baseclass + “_” + language2 + “_” + country2 baseclass + “_” + language2 查找的结果是一个类,但是那个类可能由磁盘上的特性文件支持。如果查找失败,getBundle() 抛出 MissingResourceException 异常。 基类必须 完全合格(例如,myPackage.MyResources, 而不仅仅是 MyResources)。 它必须是您的代码可执行的;它不能是对调用 ResourceBundle.getBundle 的包私有的类。 注意:ResourceBundle 被内部用于访问 NumberFormats、Collation 等。查找策略是相同的。 资源束包含键/值对。键用于唯一地识别资源束中特定于语言环境的对象。下面是一个包含键/值对的 ListResourceBundle 的例子: class MyResource extends ListResourceBundle { public Object[][] getContents() { return contents; } static final Object[][] contents = { // LOCALIZE THIS {“OkKey”, “OK”}, {“CancelKey”, “Cancel”}, // END OF MATERIAL TO LOCALIZE }; } 键总是 String。 在这个例子中,键是 OkKey 和 CancelKey。 在上面的例子中,值也是 String–OK 和 Cancel–但是它们不是一定如此。值可

02
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java.util.ResourceBundle用法详解

    这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化,详细的介绍可以看本文的最后。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我们使用“cancel”。若我们的程序是面向国际的(这也是软件发展的一个趋势),那么使用的人群必然是多语言环境的,实现国际化就非常有必要。而ResourceBundle可以帮助我们轻松完成这个任务:当程序需要一个特定于语言环境的资源时(如 String),程序可以从适合当前用户语言环境的资源包(大多数情况下也就是.properties文件)中加载它。这样可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(即便不是全部)特定于语言环境的信息隔离开来。

    01

    Servlet学习笔记

    Servlet学习笔记 1.0 Servlet 概述 1.1 Servlet是运行在服务器端的Java小程序,通过HTTP协议用于接受客户端请求,并发出响应。 1.2 Servlet中的方法 public void servlet(ServletRequest req,ServletRequest res) throws ServletExcepation,java.io.IOException ServletRequest req:代表着请求对象,该对象有HTTP协议的请求部分的所有内容。它的实现类由服务器提供,封装数据也是服务器来做。 ServletRequest res:代表着响应对象,该对象中由我们写数据(HTTP协议的响应部分)进去。它的实现类也是由服务器提供的。 service: 由服务器调用,每次请求都会调用一次。服务器采用的是多线程机制。 2.0 Servlet 的编码步骤 2.1 编写一个类实现javax.servlet接口,或者继承javax.servlet.GenericServlet. 2.2 编译 set classpath=%classpath%;E:\IDE\tomcat-8.0.26\lib\servlet-api.jar javac -d . HelloServlet.java 2.3 修改web.xml 2.4 部署,把应用部署到Tomcat上,访问地址:http://localhost:8080/DemoServlet/hello 3.0 Servlet 的执行过程 4.0 Servlet 的编写方式 1、javax.servlet.GenericServlet:通用的Servlet实现,抽象类 2、javax.servlet.http.HttpServlet:与HTTP协议有关的,抽象类。 3、Servlet的核心类 5.0 Servlet 的生命周期 6.0 Servlet 的线程安全 尽量使用局部变量,避免使用实例变量。 7.0 Servlet 的一些细节 7.1 一个Servlet可以映射到多个地址上。 7.2 可以使用地址通配符* 7.2.1(优先级高) *.do 必须以*号开头 如:*.do 7.2.2(优先级高) 以/开头,必须以*结尾 如:/action/* 7.2.3 默认的Servlet,映射路径是<url-pattern>/</url-pattern>。不需要配,因为默认的Servlet负责处理用户请求找不到的处理工作。一切都是Servlet。 7.2.4 应用在启动时就完成Servlet的实例化和初始化。2为启动的顺序。 web.xml <load-on-startup>2</load-on-startup> 8.0 ServletConfig:Servlet的参数配置 8.1 ServletConfig:代表看针对当前Servlet的参数配置。 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。 8.2 如何得到ServletConfig对象的应用:在初始化Servlet,由容器产生,并传递给你 9.0 ServletContext 9.1 ServletContext代表着当前应用。每个应用只有一个ServletContext对象的实例,由容器提供。 9.2 如何获取ServletContext的实例:ServletConfig.getServletContext(); 9.3 ServletContext的生命周期:诞生,应用被加载时就由容器被创建好。活着,应用不挂就一直活着。死亡,应用挂了就挂了。 9.4 域(存活范围)对象:ServletContext称为应用范围域对象。 ServletContext{ private Map<String,Object>map = new HashMap<String,Object>(); public void setAttribute(String key,Object value){ map.put(key,value); } public void removeAttribut

    02

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券