如何使resources目录和全局消息变量在java或JavaEE中工作,并将其用于不同的语言

如何使resources目录和全局消息变量在java或JavaEE中工作,并将其用于不同的语言,java,eclipse,jakarta-ee,struts2,internationalization,Java,Eclipse,Jakarta Ee,Struts2,Internationalization,我在一个教程中看到,我可以在项目的根路径中创建一个名为resources的目录,并在名为ApplicationResources.properties的目录中创建一个文件,将所有消息定义为常量,以防止在程序中插入硬编码消息,我已将以下行添加到文件中,并尝试在struts2 web项目的MyClass-validation.xml中使用它们,但它们没有被指定的消息替换 我的文件是resources/ApplicationResources.properties: errors.invalid=${

我在一个教程中看到,我可以在项目的根路径中创建一个名为resources的目录,并在名为ApplicationResources.properties的目录中创建一个文件,将所有消息定义为常量,以防止在程序中插入硬编码消息,我已将以下行添加到文件中,并尝试在struts2 web项目的MyClass-validation.xml中使用它们,但它们没有被指定的消息替换

我的文件是resources/ApplicationResources.properties:

errors.invalid=${getText(fieldName)} is invalid.
errors.required=${getText(fieldName)} is required.
errors.number=${getText(fieldName)} must be a number.
errors.range=${getText(fieldName)} is not in the range ${min} and ${max}.
  • 如果此方法正确,如何将它们插入java程序?或者我只能将它们用于配置文件
  • 如果这个方法不正确,我应该怎么做
  • 如何将其用于i18n
  • 变量min、max是否应来自消息变量范围?在配置文件中,它们应该来自标记属性
  • XML:

    
    1.
    1000
    

    本教程是。顺便说一句,我的项目结构是eclipse默认结构:MyProject/(src resources WebRoot)

    问题中有一些xml代码没有显示。我解决不了这个问题。与它显示的代码不同,添加了“XML:”并进一步缩进。感谢您发现并解决了这个问题。请注意,本教程针对的是Struts 2的一个非常旧的版本。所以您的意思是资源包不再工作了,我应该采用另一种方法来组织消息?
       <?xml version="1.0" encoding="UTF-8"?>
       <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
        <validators>
            <field name="duration">
                <field-validator type="int">
                    <param name="min">1</param>
                    <param name="max">1000</param>
                    <message key="errors.range"/>
                </field-validator>
            </field>
        </validators>