Consider this <constant name="struts.custom.i18n.resources"
value="messages/default,messages/customize" />
And default.properties content islabel.sample = Default Sample
And the customize.properties content is//Duplicate key
label.sample = Customize Sample
Calling <s:text name="label.sample"> will result in Customize Sample If we
review the above strust i18n this seems correct behavior as we first defined
default and then the customize, so the keys in customize properties will
override the keys in default.Now we try to override the customize messages
dynamically. So <!--The customize is removed -->
<constant name="struts.custom.i18n.resources"
value="messages/default" />
In some where like an startup servlet, we add customize messages
as:LocalizedTextUtil.clearDefaultResourceBundles();
LocalizedTextUtil.addDefaultResourceBundle("messages/customize");
This will not work! As alternative if we remove default from i18n property and
do it as below, we will get the customize
valueLocalizedTextUtil.clearDefaultResourceBundles();
LocalizedTextUtil.addDefaultResourceBundle("messages/default");
LocalizedTextUtil.addDefaultResourceBundle("messages/customize");
Is it possible to keep the list of default properties in xml and only add
customize ones at run time ~Regards,
~~Alireza Fattahi