JSF 国际化 f:loadbundle 或通过 faces-config:性能点

2024-04-13

有两种方法可以将属性文件加载到 JSF 2.0 中。

  1. 全球资源包 全局加载属性文件,以便所有jsf页面都可以访问消息。您可以创建一个“faces-config.xml”文件并显式声明属性文件。

面孔配置.xml

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
     <application>
      <resource-bundle>
        <base-name>com.mkyong.messages</base-name>
        <var>msg</var>
       </resource-bundle>
     </application>
</faces-config>

选项2:本地资源包 本地加载属性文件,或仅加载指定页面的属性文件。声明<f:loadBundle />页面中需要访问messages.properties中消息的标签。

这两者中哪一个能给我更好的性能?

假设我选择第一个选项,这是否意味着所有捆绑包都会在应用程序启动期间加载,还是延迟加载? (一经请求)

如果选择第二个选项,是否可能导致每个 ViewRoot 多次加载包?

Java ResourceBundle 是在 servlet 容器内提供单例对象的工厂类吗?

我的意思是 getBundle 方法是始终创建单例对象的工厂方法?

ResourceBundle myResources =
      ResourceBundle.getBundle("MyResources", currentLocale);

假设我有一个页面 abc.xhtml 并且正在使用 f:loadBundle,并且有 1000 个用户访问该页面,这是否意味着会创建 1000 个 resouceBundle 对象?或者它是所有页面实例共享的唯一对象?


这两者中哪一个能给我更好的性能?

我不会担心表演。这ResourceBundle已经在内部缓存它们。


假设我有一个页面 abc.xhtml 并且正在使用 f:loadBundle,并且有 1000 个用户访问该页面,这是否意味着会创建 1000 个 resouceBundle 对象?或者它是所有页面实例共享的唯一对象?

默认情况下,只创建一个。也可以看看the ResourceBundleAPI文档 http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html:

缓存管理

getBundle 工厂方法创建的资源包实例默认会被缓存,如果已缓存,工厂方法会多次返回同一个资源包实例。 getBundle 客户端可以清除缓存,使用生存时间值管理缓存的资源包实例的生命周期,或者指定不缓存资源包实例。请参阅 的说明getBundle工厂方法 http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle%28java.lang.String,%20java.util.Locale,%20java.lang.ClassLoader,%20java.util.ResourceBundle.Control%29, clearCache http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html#clearCache%28java.lang.ClassLoader%29, ResourceBundle.Control.getTimeToLive http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.Control.html#getTimeToLive%28java.lang.String,%20java.util.Locale%29, and ResourceBundle.Control.needsReload http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.Control.html#needsReload%28java.lang.String,%20java.util.Locale,%20java.lang.String,%20java.lang.ClassLoader,%20java.util.ResourceBundle,%20long%29了解详情。

您可以通过查看实例的哈希码轻松证明自己是否处于调试器中。


The <application>顺便说一下,声明还有一个额外的好处,即该包也可以通过以下方式注入到托管 bean 中:@ManagedProperty("#{msg}")。另请参阅此问答:读取托管 bean 中的资源包属性 https://stackoverflow.com/questions/13655540/read-i18n-variables-from-properties-file-in-a-bean.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF 国际化 f:loadbundle 或通过 faces-config:性能点 的相关文章

  • HttpSession 内的同步是否可行?

    UPDATE 问题后立即解决 问题 通常 同步是在 JVM 内序列化并行请求 例如 private static final Object LOCK new Object public void doSomething synchroniz
  • Spring @Validated 在服务层

    Hej 我想使用 Validated group Foo class 在执行方法之前验证参数的注释 如下所示 public void doFoo Foo Validated groups Foo class foo 当我将此方法放入 Spr
  • OpenFaces JSF 2 组件库

    有没有人尝试过开放面孔 3 http openfaces org并可以对以下内容进行简短评论 稳定 与其他库的兼容性 PrimeFaces RichFaces 等 使用方便 换肤功能 主题支持等 我正在寻找 JSF 2 组件库 我目前正在使
  • 如何停止使用扫描仪从标准输入读取多行?

    我正在做一个 JAVA 作业 应该处理多行输入 指令显示 输入是从标准输入读取的 给出了示例输入的示例 one 1 two 2 three 3 我不明白上面的示例输入 从标准输入读取 是什么意思 这是我编写的一个测试程序 它可以消除我的困惑
  • 我应该使用 JDBC getNString() 而不是 getString() 吗?

    我们正在构建一个由 Oracle 数据库支持的 Java 应用程序 我们使用 JDBC 驱动程序 访问该数据库ojdbc6 jar and orai18n jar 数据库模式主要使用以下方式存储文本列NVARCHAR2数据类型 The JD
  • 想要从java中的char数组创建字符流

    我想从 char 数组构造一个流以使用 java 8 功能 例如过滤器和映射 char list a c e Stream
  • Apache Commons VFS - 无法解析文件

    VFS 方法无法处理此 URI jboss server temp dir local outgoing配置在jboss beans xml这是决心 C Download jboss eap 5 1 1 server default tmp
  • 限制 JPQL 中的结果数量

    如何限制从数据库检索结果的数量 select e from Entity e I need only 10 results for instance 您可以尝试像这样给出 10 个要显式获取的结果 entityManager createQ
  • 为什么我的 @OneToMany 属性出现主键违规?

    我有一个实体 Entity public class Student GeneratedValue strategy GenerationType AUTO Id private long id OneToMany private Set
  • java 中的 Try-with-resources 和 return 语句

    我想知道是否放一个return里面的声明尝试资源block 防止资源自动关闭 try Connection conn return conn createStatement execute 如果我写这样的东西将会联系被关闭 Oracle 文
  • 使用 equals 方法比较两个对象,Java

    我有一个对象数组 我想将它们与目标对象进行比较 我想返回与目标对象完全匹配的对象的数量 这是我的计数方法 public int countMatchingGhosts Ghost target int count 0 for int i 0
  • Java:不使用 Arrays.sort() 对整数数组进行排序

    这是我们 Java 课程的练习之一中的说明 首先 我想说我 做了我的功课 我不仅仅是懒惰地请 Stack Overflow 上的人帮我回答这个问题 在所有其他练习中 这个特定项目一直是我的问题 因为我一直在努力寻找 完美的算法 编写JAVA
  • 如何将测试类打包到jar中而不运行它们?

    我正在努力将我的测试类包含到 jar 包中 但不运行它们 经过一番谷歌搜索后 我尝试过mvn package DskipTests 但我的测试类根本没有添加到 jar 中 有任何想法吗 如果您遵循 Maven 约定 那么您的测试类位于src
  • 如何在 Java 中创建一个带有连字符的值的静态枚举?

    如何创建如下所示的静态枚举 static enum Test employee id employeeCode 截至目前 我遇到了错误 这对于 Java 来说是不可能的 因为每个项目都必须是有效的标识符 并且有效的 Java 标识符可能不包
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 内部类的访问修饰符[重复]

    这个问题在这里已经有答案了 可能的重复 受保护 公共内部类 https stackoverflow com questions 595179 protected public inner classes 我确信这个问题已经被问过 但我找不到
  • 如何在apache POI中读取excel文件的准确单元格内容

    当我读取单元格的内容时 例如如果它是日期格式 它会转换为另一个值 例如 12 31 2099 gt 46052 和 50 00 gt 50 和 50 00 gt 0 5 但我想要的是获取每个单元格的确切字符串值 我的代码是这样的 cell
  • 尝试使用 Spring 和扩展 Hibernate JpaRepository 的自定义 GenericDao 接口来使用 EhCache

    背景 这是我的工作 简化 GenericDao接口 由任何实现DomainDao 通用Dao java NoRepositoryBean public interface GenericDao
  • 检查 Java 字符串实例是否可能包含垃圾邮件数据的最简单方法

    我有一个迭代 String 实例的过程 每次迭代对 String 实例执行很少的操作 最后 String 实例被持久化 现在 我想为每次迭代添加一个检查 String 实例是否可能是垃圾邮件的检查 我只需验证 String 实例不是 成人材
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • 我们可以同时使用“export default”和“module.exports”吗?

    如何使用export default and module exports在同一个文件中 出口 export default function module exports A B C 如何导入它们 很确定这是不可能的 默认导出基本上与您分
  • 如何在 TypeScript 中实现睡眠功能?

    我正在使用 TypeScript 在 Angular 2 中开发一个网站 我想知道是否有办法实现thread sleep ms 功能 我的用例是在几秒钟后提交表单后重定向用户 这在 JavaScript 中非常简单 但我不确定如何在 Typ
  • 如何在 WebGL 中创建合适的圆角矩形?

    我试图实现答案这个问题 https stackoverflow com questions 43970170 bordered rounded rectangle in glsl但似乎有点问题 如果您打开他们的 ShaderToys 并尝试
  • org.dbunit.dataset.NoSuchTableException,但表存在

    H2 1 4 191 数据库单元 2 5 1 如何解决这个问题 3种情况的代码和结果 org dbunit dataset NoSuchTableException category org dbunit dataset NoSuchTab
  • 为什么我的 wss://(基于 SSL/TLS 的 WebSockets)连接立即断开而不给出任何错误?

    将此发布给遇到同样问题的其他人 我当时正在开发一个浏览器客户端 它使用 stanza io 连接到 XMPP 服务器 在我的例子中是 Prosody 我默认使用 wss 连接 在开发过程中的某个时刻 我的客户端根本无法连接 它会立即无提示地
  • iphone 4.0 以编程方式发送短信

    我正在开发一个简单的应用程序 在其中我需要以编程方式向我的朋友发送短信 所以编写下面的代码来发送短信 MFMessageComposeViewController picker MFMessageComposeViewController
  • 比较 2 个对象数组并删除重复项

    我在 JavaScript 中有 2 个对象数组 想要比较和合并内容并按 id 对结果进行排序 具体来说 生成的排序数组应包含第一个数组中的所有对象 以及第二个数组中具有不在第一个数组中的 id 的所有对象 以下代码似乎有效 减去排序 但必
  • 派生类的初始值设定项列表

    我想要一个派生类 它有一个默认构造函数来初始化继承成员 为什么我可以这样做 class base protected int data class derived public base public derived note data 4
  • wcf 服务不允许 POST

    一般来说 我对 Web 服务还很陌生 并且 我认为 陷入了配置 IIS 和 Web 服务本身的困境 我在 MVS 2010 中创建了一个 wcf Web 服务 并将其托管在 Windows 7 上的 IIS7 5 上 我使用soapUI 4
  • 使用 BCEL 生成的解析字节码确定对象之间的传出耦合(CBO 指标)

    我已经构建了一个程序 它接受提供的 class 文件并使用 BCEL 解析它 我现在已经学会了如何计算 LCOM4 值 现在我想知道如何计算类文件的CBO 对象之间的耦合 值 我已经搜索了整个网络 试图找到关于它的正确教程 但到目前为止我还
  • Gracefull python joblib 杀死

    是否有可能优雅地杀死一个joblib https github com joblib joblib处理 线程后端 并且仍然返回到目前为止的计算结果 parallel Parallel n jobs 4 backend threading r
  • Facebook 对话框、注销和访问令牌(Facebook iOS SDK)

    当使用这样的代码创建 Facebook 对话框时 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys apiKey api key nil
  • Apple Mac 和 Unix 时间戳

    我知道Apple系统上的主要时间戳是CF绝对时间值 也称为Mac绝对时间 它是根据自01 01 2001 00 00 00 UTC以来的秒数计算的32位整数 例如 219216022 解码后为 Thu 13 December 2007 05
  • 在 Objective C 中格式化浮点数

    我需要将浮点数 吸引人的标题 他 格式化为小数点后两位 但前提是这些小数位的值不为零 例子 我有一个名为 answer 的 NSTextField 在使用几个浮点进行一些数学运算后 我想将 answerFloat 变量分配给 answer
  • 无法正确设置PrintArea

    我正在使用 phpspreadsheet v1 3 1 我正在构建一个 Excel 文件 下载 一切正常 唯一的问题是定义 setPrintArea 它总是将标准 PrintArea 返回到 excel 中 基本上 我构建了 Excel 行
  • 根据特定参数值显示或隐藏 SSRS 列

    我无法根据所选参数值显示 隐藏列 我的报告是如何设置的 参数 ImportStatus ImportStatus 参数有三个值可供选择 M V E 如果我选择 ImportStatus value M 那么我希望报告显示特定列 目前 如果我
  • 如何通过扬声器而不是较弱的耳机扬声器播放音频?

    我正在学习核心音频 由于某种原因 处理图的声音仅通过弱 耳机 播放 当您将设备放在耳边时 而不是通过 iPhone 的常规扬声器播放 这是设置音频会话的代码 但我看不到它在哪里配置音频路由 void setupAudioSession AV
  • PivotTable.js 有条件地更改文本颜色

    所以我正在使用 PivotTable js 它对工作有很大帮助 但现在 我正在尝试获取一个过滤器来根据值更改单元格的颜色或单元格内的字体 例如 如果我的数据集中有一个日期数组 dates N A 4 12 2016 7 9 2024 7 9
  • Python 类输入参数

    我是面向对象编程的新手 我的想法是实现以下课程 class name object name def init self name print name 然后的想法是创建该类的两个实例 person1 name jean person2 n
  • JSF 国际化 f:loadbundle 或通过 faces-config:性能点

    有两种方法可以将属性文件加载到 JSF 2 0 中 全球资源包 全局加载属性文件 以便所有jsf页面都可以访问消息 您可以创建一个 faces config xml 文件并显式声明属性文件 面孔配置 xml