Отделение контента от шаблона всегда хорошая практика. Таким образом, вам не нужно перестраивать, заново развертывать и / или перезапускать все это для каждого глупого изменения контекста / опечатки / сбой. API ResourceBundle
(который стандартно используется для fmt
taglib и других тегов i18n / l10n в JSTL) достаточно smart для динамической перезагрузки файлов ресурсов на каждое изменение (по крайней мере, если вы используете JDK 1.6 или новее, в котором встроены эти улучшения ).
Кроме того, всякий раз, когда вы хотите перейти на i18n или хотите перейти от файла свойств к таблице базы данных или к чему-то еще, вам не нужно менять шаблон для извлечения из него содержимого - что вас укусит гораздо больше если вы сделаете это потом.
Корреляция содержимого и местоположения в шаблоне друг с другом - это лишь небольшая работа, я могу себе представить, что это основной страх среди разработчиков / сопровождающих. Я сам составляю ключи так, чтобы они примерно соответствовали pagename.parentid.elementtype.elementname.contenttype
(примерно; не все из них необходимы, но это дает представление), так что уже сразу понятно, где они находятся.
например. home.login.label.username.tooltip
ключ, который указывает на home.jsp
с:
<form id="login">
<label for="username" title="${text['home.login.label.username.tooltip']}">
Соблюдайте это соглашение последовательно, и вы поймете, что все это будет легче поддерживать.