пробелы в ключах пакета сообщений - PullRequest
3 голосов
/ 30 марта 2011

Я хочу иметь возможность использовать пробелы в ключах своего пакета сообщений, потому что легче преобразовать существующий текст в ключи, если вам не нужно также преобразовывать пробелы в подчеркивания.

Источник сообщения Spring, похоже, не нравитсяэто хотя.это возможно?

2011-03-30 15:45:56,519 ERROR [org.springframework.web.servlet.tags.MessageTag] - No message found under code 'Invalid username or password' for locale 'en_US'.
javax.servlet.jsp.JspTagException: No message found under code 'Invalid username or password' for locale 'en_US'.
    at org.springframework.web.servlet.tags.MessageTag.doStartTagInternal(MessageTag.java:183)

Ответы [ 2 ]

13 голосов
/ 31 марта 2011

Если вы храните свои сообщения с помощью пакета ресурсов .properties, убедитесь, что вы добавляете обратную косую черту перед пробелами в ключе.

Invalid\ username\ or\ password=Invalid username or password

См. Пример файлов свойств в Википедии:

http://en.wikipedia.org/wiki/.properties

# Add spaces to the key
key\ with\ spaces = This is the value that could be looked up with the key "key with spaces".
1 голос
/ 31 марта 2011

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

@Test
  void fixMessageBundle(){
      def path = "/path/to/it/messages_en_US.properties";
      String fixed = "";
      Map keys = [:]
      new File(path).eachLine { String it->
          String line = "";
          if(it.contains("=")){
            String key = it.split("=")[0];
            String val = it.split("=")[1];
            if(keys.containsKey(key)){
                println "removed duplicate key: ${key}. kept val: [${keys[key]}], threw out val: [${val}]"
                return
            }
            keys.put(key, val);
            line = key.replaceAll(/([^\\]) /, "\$1\\\\ ") + "=" + val;
          }
          fixed  += line+"\n";
      }
      new File(path).text = fixed;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...