我有一个自定义的ResourceBundle类org.example.web.UILabels.java,它可以很好地运行代码,但Eclipse中的JSF编辑器找不到它,我假设编辑器/验证器只是按名称查找属性文件.这也意味着我不再需要提前找到资源,这是非常好的.
有什么想法可以纠正吗?
<f:loadBundle basename="org.example.web.UILabels" var="uiLabels"/>
...
<h:outputText value="#{uiLabels.someTextValue}" />
...
Run Code Online (Sandbox Code Playgroud)
我收到错误消息(在问题错误列表中)
在类路径上找不到资源包org.example.web.UILabels
Type = JSF问题
带有WebStandardTools版本的Eclipse3.4.0
有关我为什么使用ResourceBundle类而不仅仅是属性文件的更多信息,请参阅问题653682如何覆盖某些资源来自属性资源包
谢谢你的时间,David Waters
在属性文件中我有一个key=A: {{0}, {1}}, B: {{2}, {3}}.我期待一个字符串"A: {0, 1}, B: {1, 2}".花括号内的数字正在解析.如何包含字符"{"而不绑定任何值?我也试过逃避这个角色"// {".即使我无法得到预期的结果.错误java.lang.IllegalArgumentException:无法解析参数编号0,1发生.
我正在使用RC,我已经通过NuGet查看了所有内容都是最新的.在我的global.asax.cs中我得到了:
BundleTable.Bundles.AddDefaultFileExtensionReplacements();
BundleTable.Bundles.AddDefaultIgnorePatterns();
BundleTable.Bundles.AddDefaultFileOrderings();
Bundle scripts = new Bundle("~/Scripts");
scripts.IncludeDirectory("~/Scripts", "*.js");
BundleTable.Bundles.Add(scripts);
Bundle css = new Bundle("~/Content/css");
css.IncludeDirectory("~/Content/css", "*.css", false);
BundleTable.Bundles.Add(css);
Run Code Online (Sandbox Code Playgroud)
我尝试了一些不同的配置而没有任何改进.
然后在我的布局中我得到了:
<link href="@BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@BundleTable.Bundles.ResolveBundleUrl("~/Scripts")"> </script>
Run Code Online (Sandbox Code Playgroud)
当页面加载它看起来很体面的网址时:
<link href="/Content/css?v=QAsFYXHCbnaU70oGVxpgi9py9iKQrT9C4BVNdHa7xoI1" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
但该网址重定向到:
/Content/css/
Run Code Online (Sandbox Code Playgroud)
返回404找不到错误...

有人有任何想法吗?
asp.net-mvc resourcebundle asp.net-mvc-4 asp.net-optimization
在某些项目中,我使用经典ResourceBundle机制来获取与语言环境相关的消息(异常消息,信息消息等等).
但我有一些问题:
ResourceBundle可以返回一个Object;.setParent()不首先搜索父亲,但孩子).我知道可以编写代码来克服后两点; 但是,如果有一个库以更简单的方式处理消息,那就更好了!你知道吗?
我目前从eclipse切换到android studio.在eclipse中我有2个项目,一个android应用程序项目和一个java项目,我将其作为库包含在android项目中.这个java项目使用ResourceBundles为它自己的错误创建国际化的错误消息.这是我的项目结构:
/MyApp
/src
/res
...
/MyLibrary
/src
/res (added as source folder to build path)
/loc
Bundle_en.properties
Run Code Online (Sandbox Code Playgroud)
这在加载RessourceBundles时起作用如下:
ResourceBundle.getBundle("loc.Bundle", Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)
现在我切换到android studio,我的新项目结构看起来像这样(将java库添加为模块):
/MyProject
/MyApp
...
/MyLibrary
/src
/main
/java
...
/res
/loc
Bundle_en.properties
Run Code Online (Sandbox Code Playgroud)
但是我不能再加载ResourceBundles了,它只是扔了一个java.util.MissingResourceException.我为ResourceBundles和不同的路径尝试了很多不同的位置,但我会发疯,因为似乎没有任何工作.任何人都可以解释在哪里放这些捆绑以及如何加载它们?
谢谢!
我想从各种包中加载多个属性文件作为ResourceBundle.我能用Java实现吗?
有很多关于使用Java ResourceBundles来提供多种语言UI的教程.但是,关于与翻译公司的典型互动存在流程问题,我似乎无法找到答案.
假设我不懂法语,需要聘请翻译公司为我的应用程序翻译,我会发送给他们
我需要从CMS加载文本标签.内容以标准属性文件格式公开.CMS作为一种RESTful Web服务提供者运行,而不是推送文件,因此我需要按需提取属性文件.我天真地希望,如果我创建了一个ReloadableResourceBundleMessageSource并将基本名称设置为文件的URL减去locale参数,那将会像魔术一样工作,但显然它没有.任何人都可以建议一个方法吗?在Spring中是否存在开箱即用的解决方案,还是有一些我需要扩展的类?
我正在创建一个Java单元测试来测试我最近更改的一些代码.但是,我测试的方法实例化一个使用ResourceBundle的类...
ResourceBundle.getBundle("businessVariables").getString("product.name"));
Run Code Online (Sandbox Code Playgroud)
资源文件位于Web包中 Mycompany_web/src/main/webapp/WEB-INF/classes/businessVariables.properties
我的测试生活在我的xml包中 Mycompany_xml/src/test/java/uk/co/mycompany/xmlapi/RequestProcessorTestNew.java
在正常运行时,资源包可以访问,但不能在我的单元测试运行时访问.它抛出了这个错误......
Testcase: testCreateInitialStatusResponse(uk.co.mycompany.xmlapi.RequestProcessorTestNew): Caused an ERROR
null
java.lang.reflect.InvocationTargetException
at uk.co.mycompany.xmlapi.RequestProcessorTestNew.testCreateInitialStatusResponse(RequestProcessorTestNew.java:62)
Caused by: java.lang.ExceptionInInitializerError
at uk.co.mycompany.xmlapi.RequestProcessorImpl.createInitialStatusResponse(RequestProcessorImpl.java:812)
Caused by: java.util.MissingResourceException: Can't find bundle for base name businessVariables, locale en_US
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我可以启用测试以某种方式查看资源包吗?我可以在某处以某种方式创建一个模拟资源文件,代码将能够看到吗?
我有一个使用java.util.ResourceBundle来处理显示字符串的应用程序.我使用ListResourceBundle作为基类型,因为我希望能够返回一些属性键的字符串数组(大多数是标准名称/值配对).
当我尝试在OSGi环境中加载ResourceBundle时,我得到一个MissingResourceException.我无法弄清楚为什么会这样.在尝试获取包之前,我可以解析类名并在两个语句中创建类的新实例,因此我知道类在包中.我正在使用区域设置(en_AU)但没有为该区域设置提供特定的类,回退规则应该选择我的默认实现.即使我为语言环境添加了一个类,它也没有解析.
我获取数据的过程是:
服务
public interface NameManager {
public String getCategoryName(String identifier, Locale locale);
}
Run Code Online (Sandbox Code Playgroud)
这个的实现
public class OsgiNameManager implements NameManager {
public String getCategoryName(@Nonnull Identifier category, Locale locale)
{
try {
Collection<ServiceReference> references = (Collection)osgiContext.getServiceReferences(
DisplayNameProvider.class, "(namespace=" + category + ")");
Iterator<ServiceReference> it = references.iterator();
while ( it.hasNext() ) {
ServiceReference reference = (ServiceReference)it.next();
DisplayNameProvider namer = (DisplayNameProvider)osgiContext.getService(reference);
String name = namer.getCategoryName(category, locale);
osgiContext.ungetService(reference);
if (name != null)
return name;
}
}
catch (InvalidSyntaxException badFormat) {
LOG.warn("No registered provider …Run Code Online (Sandbox Code Playgroud) resourcebundle ×10
java ×7
asp.net-mvc ×1
easymock ×1
eclipse ×1
jsf ×1
junit ×1
osgi ×1
spring ×1
unit-testing ×1