Java 如何将不同数量的参数传递到.properties文件以获取消息?

Java 如何将不同数量的参数传递到.properties文件以获取消息?,java,Java,我正在使用Tapestry,希望将各种参数传递到.properties文件,以便在屏幕上打印消息 例如,我想这样打印消息: 消息为1、2、3和4。或 消息为1和2。或 消息是1 我如何在属性文件中定义消息,以便可以传递不同数量的参数?我可以把它们放在列表中吗 message=The messages for {0} - {1, list} Tapestry提供了一个org.apache.Tapestry.ioc.Messages服务(在Tapestry ioc中),您可以将该服务插入到任何

我正在使用Tapestry,希望将各种参数传递到.properties文件,以便在屏幕上打印消息

例如,我想这样打印消息:

  • 消息为1、2、3和4。或
  • 消息为1和2。或
  • 消息是1
我如何在属性文件中定义消息,以便可以传递不同数量的参数?我可以把它们放在列表中吗

message=The messages for {0} - {1, list}

Tapestry提供了一个
org.apache.Tapestry.ioc.Messages
服务(在Tapestry ioc中),您可以将该服务插入到任何组件中:

  • 访问附加到此组件的
    .properties
    文件中指定的任何属性(方法
    字符串获取(字符串键)
  • 获取并使用
    MessageFormatter
    对象对同一文件的属性执行某种“String.format(…)”操作
在Java方面,在组件类中,您可以按照所需的方式构建消息:

public class MyComponent {

    @Inject
    private Messages messages;

    @Property
    private String messageToDisplay;

    @SetupRender
    final void init() {
        // ...
        messageToDisplay = messages.get("some-key").format(valueForParam0, valueForParam1, ...);
        // ...
    }
}
此外,从Tapestry的v5.3开始,您可以使用
org.apache.tapestry5.alerts.AlertManager
服务轻松地将消息显示为警报(具有“info”、“warn”等级别)