Do resource bundles in Java support runtime string substitution?

前端 未结 8 781
夕颜
夕颜 2020-12-25 10:32

Can you do the following with a Java ResourceBundle?

In the properties file...

example.dynamicresource=You currently have {0} accounts.
8条回答
  •  一个人的身影
    2020-12-25 11:18

    Struts have a nice util called MessageResources which does exactly what you ask for....

    e.g.

    MessageResources resources = getResources(request, "my_resource_bundle"); // Call your bundle exactly like ResourceBundle.getBundle() method
    resources.getMessage("example.dynamicresource",accountCount,param2,...);
    

    Limitation It only allows maximum of 3 parameters (i.e. resource attribute, param1, ..., param3).

    I suggest using MessageFormat (if you want to use more than 3 parameter values) as suggested by David Sykes.

    PS the getResources method is available only in the Struts Action class.

提交回复
热议问题