使用 Spring 框架将文件夹添加到 Velocity 中的类路径

发布于 2024-12-17 18:21:10 字数 1574 浏览 1 评论 0原文

如何将整个文件夹添加到 Velocity 并将其中的文件用作资源包?

目前在我的velocity.xml 中,我有以下代码:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="parentMessageSource">
      <ref bean="globMessageSource"/>
    </property>
    <property name="basenames">
      <list> 
        <value>classpath:/WEB-INF/i18n</value>
        <value>/WEB-INF/templates/velocity/my_vm_template</value>
   </list> 
</bean>

我需要将 i18n 文件夹添加到类路径中,以便 toolbox.xml 中的 VelocityTools 版本 1.4 可以看到它包含的文件:

 <tool>
   <key>test</key>
   <scope>request</scope>
   <class>org.apache.velocity.tools.generic.ResourceTool</class>
   <parameter name="bundles" value="i18n.ss_messages"/>
   <parameter name="locale" value="en_US"/>
 </tool>

该代码给了我一条错误消息:“java .util.MissingResourceException:找不到基本名称 i18n.ss_messages、语言环境 en_US 的包”

此问题涉及 VelocityTools 错误 - “java.util.MissingResourceException:找不到捆绑包基本名称 WEB-INF.conf.resources.ss_messages,区域设置 en_US"

抱歉,如果这是一个愚蠢的问题,但是我找不到任何地方描述如何将整个文件夹添加到类路径并作为捆绑包提供,以便它可以支持 Velocity 模板本地化。

重要提示!!如果我将 ss_messages_bg_BG.properties 和 ss_messages_en_US.properties 文件放在 /WEB-INF/classes/i18n 中,那么它就可以工作,但我想将它们放在不同的文件夹中,最好放在 /WEB 中-INF/模板/i18n.我该怎么做?

How can I add an entire folder to Velocity and use the files inside as resource bundles?

Currently in my velocity.xml I have this code:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="parentMessageSource">
      <ref bean="globMessageSource"/>
    </property>
    <property name="basenames">
      <list> 
        <value>classpath:/WEB-INF/i18n</value>
        <value>/WEB-INF/templates/velocity/my_vm_template</value>
   </list> 
</bean>

I need to add i18n folder to the classpath so that its containing files can be seen by the VelocityTools version 1.4 in the toolbox.xml:

 <tool>
   <key>test</key>
   <scope>request</scope>
   <class>org.apache.velocity.tools.generic.ResourceTool</class>
   <parameter name="bundles" value="i18n.ss_messages"/>
   <parameter name="locale" value="en_US"/>
 </tool>

The code is giving me an error message: "java.util.MissingResourceException: Can't find bundle for base name i18n.ss_messages, locale en_US"

This question relates to VelocityTools error - "java.util.MissingResourceException: Can't find bundle for base name WEB-INF.conf.resources.ss_messages, locale en_US"

Sorry if it's a silly question, but I can't find anywhere describing how to add an entire folder to the classpath and be available as a bundle so it can support Velocity template localization.

IMPORTANT NOTE!! If I place my ss_messages_bg_BG.properties and ss_messages_en_US.properties files in /WEB-INF/classes/i18n then it works, but I want to place them in a different folder ideally in /WEB-INF/templates/i18n. How do I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等你爱我 2024-12-24 18:21:10

你用maven吗?您可以告诉 Maven 使用该目录作为资源:

        <resource>
            <!-- Velocity requires to be in classpath -->
            <directory>src/main/webapp/WEB-INF/i8n</directory>
            <filtering>true</filtering>
        </resource>

Do you use maven? You could tell maven to use that directory as a resource:

        <resource>
            <!-- Velocity requires to be in classpath -->
            <directory>src/main/webapp/WEB-INF/i8n</directory>
            <filtering>true</filtering>
        </resource>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文