Struts 2 переопределяет ключи сообщений ресурсов

Учти это

<constant name="struts.custom.i18n.resources"
        value="messages/de,fault,messages/customize" />

А такжеdefault.properties содержание

label.sample = Default Sample

И содержимое customize.properties

//Duplicate key
label.sample = Customize Sample

призвание<s:text name="label.sample"> приведет кCustomize Sample Если мы рассмотрим вышеупомянутую структуру i18n, то это будет выглядеть корректно, так как мы сначала определили значение по умолчанию, а затем настройку, поэтому ключи в свойствах настройки будут заменять ключи по умолчанию.

Теперь мы пытаемся динамически переопределить сообщения настройки. Так

   <!--The customize is removed -->
    <constant name="struts.custom.i18n.resources"
            value="messages/default" />

В некоторых случаях, например, при запуске сервлета, мы добавляем сообщения настройки следующим образом:

LocalizedTextUtil.clearDefaultResourceBundles();
LocalizedTextUtil.addDefaultResourceBundle("messages/customize");

Это не будет работать! В качестве альтернативы, если мы удалим default из свойства i18n и сделаем это, как показано ниже, мы получим значение настройки

LocalizedTextUtil.clearDefaultResourceBundles();
LocalizedTextUtil.addDefaultResourceBundle("messages/default");
LocalizedTextUtil.addDefaultResourceBundle("messages/customize");

Можно ли сохранить список свойств по умолчанию в XML и добавлять только настраиваемые свойства во время выполнения

Вот почему нам это нужно Мы разрабатываем и размещаем веб-приложение, которое продается множеству клиентов. Приложение имеет сообщение по умолчанию. Вполне возможно, что ОДИН из наших клиентов хочет изменить некоторые сообщения приложения по умолчанию, а другие - нет. Итак, у нас есть папка для настройки сообщений, и каждый банк может переопределять свои собственные сообщения.

У нас есть ниже структура папок для клиентов:

+messages
  -resources_fa_IR.properties
  -resources_en_US.properties 
+customer1
   -customize_fa_IR.properties
   -customize_en_US.properties
+customer2
   -customize_fa_IR.properties
   -customize_en_US.properties

И в StartUpSerlvet

//Set customer customize messages
LocalizedTextUtil.addDefaultResourceBundle("messages/" + activeCustomer+"/customize"); 

Ответы на вопрос(1)

Ваш ответ на вопрос