【问题标题】:No MessageBundle after tomcat deploytomcat部署后没有MessageBundle
【发布时间】:2013-09-09 11:01:23
【问题描述】:

我正在尝试将我的servlet 项目国际化,因此我将所有MessageBundle 文件放到com.project.i18n 包中:

$ ls src/main/java/com/project/i18n/
Internationalization.java     MessagesBundle_fr.properties  MessagesBundle.properties     MessagesBundle_us.properties

当我通过mvn tomcat:run 运行 tomcat 时,一切正常,并且我得到了正确的语言;但是如果将project.war 文件部署到tomcat/webapps 目录,则本地化消息不再起作用,当我检查tomcat/webapps 中的包路径时,没有MessageBundle 文件:

 $ ls webapps/ROOT/WEB-INF/classes/com/project/i18n/
   Internationalization.class

这是index.jsp

<fmt:setLocale value="fr" />
<fmt:setBundle basename="com.project.i18n.MessagesBundle" />
...
<fmt:message key="home.welcome" />
..

任何帮助如何解决这个问题? tnx。

【问题讨论】:

    标签: java tomcat servlets internationalization jstl


    【解决方案1】:

    MessageBundle 文件不是必须到 src/main/resources 而不是 src/main/java 吗?

    您的 sourceDirectory 配置有过滤器吗?

    【讨论】:

    • 它是一个 sevlet 项目而不是 jsf
    【解决方案2】:

    国际化文件应位于/src/main/resources 文件夹中。请参考以下内容。

    http://docs.oracle.com/javaee/6/tutorial/doc/bnaxw.html

    How to internationalize a Java web application?

    【讨论】:

    • 您粘贴的链接还将捆绑文件放置到package 而不是main/resoruces
    • 是的,它应该在包中但在resources 中,而不是在java 中。即:src/main/resources/com/project/messages/
    【解决方案3】:

    我将MessageBundle 文件移动到src/main/resources 并修改了索引页面上的setBundle 如下:

    <fmt:setBundle basename="MessagesBundle" />
    

    现在可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-04
      • 2014-02-27
      • 1970-01-01
      • 2014-11-10
      • 2017-11-26
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多