jsf - JSF 错误:找不到基本名称 xxxx、语言环境 xxxx 的捆绑包
问题描述
我正在尝试使我的应用程序国际化,并为此搜索了很多教程。我总是卡在这一点上,因为无论我做什么配置,它们都不起作用。
早些时候我发了一篇关于解析异常的文章。解决此解析器异常后,现在应用程序找不到捆绑包。
我通过 faces-config.xml 以及支持的语言环境安排和注册了 Core 包。
即使我已经搜索了现有的解决方案,但它们似乎都不适用于我的案例。
那么,问题在哪里?它必须在根文件夹吗?是不是配置错误?我的 faces-config 中的一个错字(不要这么认为,我重做了很多次)。
配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<application>
<!-- <message-bundle>messages_en_US</message-bundle> -->
<!-- <message-bundle>messages_es</message-bundle> -->
<!-- <message-bundle>messages_pt_BR</message-bundle> -->
<locale-config>
<default-locale>en_US</default-locale>
<supported-locale>pt_BR</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
<resource-bundle>
<base-name>com.tfduque.fieldassist.interface</base-name>
<var>msg</var>
</resource-bundle>
</application>
</faces-config>
文件夹/包组织:
堆栈跟踪(完整:https ://pastebin.com/69iJrvuX ):
类型异常报告
消息 Can't find bundle for base name com.tfduque.fieldassist.interface_es, locale pt_BR
说明 服务器遇到了阻止它完成请求的意外情况。
Exception
javax.servlet.ServletException: Can't find bundle for base name com.tfduque.fieldassist.interface_es, locale pt_BR
javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
解决方案
通过删除文件的完整路径来解决它 - 只是文件的名称似乎就足够了:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<application>
<!-- <message-bundle>messages_en_US</message-bundle> -->
<!-- <message-bundle>messages_es</message-bundle> -->
<!-- <message-bundle>messages_pt_BR</message-bundle> -->
<locale-config>
<default-locale>en_US</default-locale>
<supported-locale>pt_BR</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
<!--- Change the path ("com.tfduque.fieldassist.interface") to the filename ("interface") here -->
<resource-bundle>
<base-name>interface</base-name>
<var>msg</var>
</resource-bundle>
</application>
</faces-config>
推荐阅读
- typescript - 在 compose VM 中是否可以观察到 computedFrom 值?
- javascript - Javascript:按下回车键时滚动到div的顶部
- time-series - 测量精度错误打印不适用
- php - 在 Laravel Blade 模板中的 AJAX 响应中出现错误
- keycloak - 如何通过keycloak中的自定义属性获取用户?
- javascript - 如何使用 mongodb native、express 和 body-parser 来发布请求和保存数据?
- android - 将 android studio 从 3.2 更新到 3.3 后出现错误
- python - 无法安装python模块
- javascript - 当输入提供为“2018.1”时,如何获得针对季度的输出,例如“FY18 Q1”?
- python - 如何避免使用全局变量?