jsp - 在属性文件中放置标签等是否是一种反模式(与 JSP 和 Web 开发相关)

标签 jsp jakarta-ee anti-patterns

我看到很多 J2EE 开发人员将标签放在属性文件中,但不使用不同的语言环境。所以,你会得到很多缺失的属性异常。主要的是它使得调试和阅读 JSP 页面变得困难。因此,随着时间的推移,您将拥有数千行属性文件,这些文件可能会或可能不会与 JSP 文件一起使用。

对我来说,这似乎是一个糟糕的设计,特别是如果您不打算使用不同语言的属性文件并根据区域设置更改为英语或法语。

我只是想知道您是否有同感,是否有 J2EE/JSP 反模式的列表或 URL。

最佳答案

将内容与模板分离始终是一个好习惯。通过这种方式,您无需为每个愚蠢的上下文更改/打字错误/打嗝重新构建、重新部署和/或重新启动整个过程。 ResourceBundle API(这是在 JSTL 的 fmt taglib 和其他 i18n/l10n 标签库后面使用的标准)是 smart足以在每次更改时动态重新加载资源文件(至少,如果您使用的是 JDK 1.6 或更高版本,它具有 those enhancements builtin )。

此外,每当您想要使用 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']}">

始终如一地保持这个约定,您会发现维护这一切变得更加容易。

关于jsp - 在属性文件中放置标签等是否是一种反模式(与 JSP 和 Web 开发相关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896095/

相关文章:

java - JSP将文本交给java和另一个jsp

css - eclipse 上的 JSP : applying inline css in a conditional statement

java - Struts 2 Action 没有被调用

c# - 在这种情况下我如何不使用 DependencyResolver.Current.GetService(...)

javascript - 创建一个函数来执行一个小的重复任务是一种反模式吗?

design-patterns - 单例有哪些特定的合法用途?

jsp - Struts 的 JSP : set textfield value from session information

rest - Jersey 的多个 ContainerRequestFilter

java - 无法理解 session 对象的行为

java - 构建多个maven pom文件并登录到单个文件