我看到很多 J2EE 开发人员将标签放在属性文件中,但不使用不同的语言环境。所以,你会得到很多缺失的属性异常。最主要的是它使调试和读取 JSP 页面变得困难。因此,随着时间的推移,您将拥有数千行可能与 JSP 文件一起使用或不使用的属性文件。
对我来说,这似乎是一个糟糕的设计,特别是如果您不打算使用具有不同语言的属性文件并根据区域设置更改为英语或法语。
我只是想知道您是否有同感,是否有 J2EE/JSP 反模式的列表或 URL。
我看到很多 J2EE 开发人员将标签放在属性文件中,但不使用不同的语言环境。所以,你会得到很多缺失的属性异常。最主要的是它使调试和读取 JSP 页面变得困难。因此,随着时间的推移,您将拥有数千行可能与 JSP 文件一起使用或不使用的属性文件。
对我来说,这似乎是一个糟糕的设计,特别是如果您不打算使用具有不同语言的属性文件并根据区域设置更改为英语或法语。
我只是想知道您是否有同感,是否有 J2EE/JSP 反模式的列表或 URL。
将内容与模板分离始终是一种很好的做法。这样,您就不需要为每个愚蠢的上下文更改/错字/打嗝重建、重新部署和/或重新启动整个事情。API(在 JSTL 的taglib和其他 i18n/l10n taglibsResourceBundle
后面使用的标准)足够智能,可以在每次更改时动态地重新加载资源文件(至少,如果您使用的是 JDK 1.6 或更新版本,它内置了这些增强功能)。fmt
此外,每当您想使用 i18n 或想要从属性文件更改为数据库表或其他内容时,您无需更改模板即可从中提取内容——如果您这样做,您会更加痛苦之后。
将模板中的内容和位置相互关联只是一点工作,我可以想象这是开发人员/维护人员的主要恐惧。我自己编写键,以便它们大致匹配pagename.parentid.elementtype.elementname.contenttype
(大致;并非所有键都是必需的,但它给出了一个想法),因此它已经立即清楚它属于哪里。
例如home.login.label.username.tooltip
,指向 a 的键home.jsp
:
<form id="login">
<label for="username" title="${text['home.login.label.username.tooltip']}">
始终如一地保持这个约定,你会发现维护这一切变得更加容易。
将标签放在属性文件中绝对是一个好习惯。即使你现在不打算国际化,这也可能在未来发生。它还可以帮助您在页面中使用一致的命名。
我不知道您为什么会遇到财产异常。在大多数框架中,如果未找到用户区域设置的属性文件,系统将读取默认(英语)文件。
您需要习惯于使用从外部属性文件读取的字段来读取 JSP 页面。这并不难,而且好处远远超过了麻烦。