java - 最佳实践 : custom jsp tag or include tag?

标签 java jsp

代码中可重用 jsp 组件的最佳实践是什么?编写自定义标签或使用 <jsp:include>标签?

哪些情况会决定使用其中一种?

用例: 我正在尝试重构应用程序的一部分,并希望就如何将 html 分解为可重用的部分做出明智的决定。我目前正在使用自定义标记来构建包括页眉和页脚以及 html 标题和依赖项的布局。但我不确定包含一大块在整个应用程序中重复使用的静态 html 的最佳方法。

最佳答案

从代码库组织的角度来看,确实有很多理由选择其中之一。

创建标签库而不是使用 jsp:include 标签的一个主要原因是提供可能影响生成的标记的参数和值。假设您想要传递一个用户名以显示在您已经花费宝贵时间检索的页眉中。此外,如果您有特别复杂的逻辑(即除了条件或循环之外的任何东西),标签库也是不错的选择。没有人希望 JSP 中有一堆乱七八糟的代码。

我想说的是,一个不接受参数且始终生成静态输出的标记库在功能上等同于使用 jsp:include

您的特定用例涉及一些相关的标记。您有页眉和页脚。将其实现为同一标签库类中的不同标签可能是有意义的,以将这些相关片段保存在同一位置。

另一方面,将 HTML 封装在标签库中会降低非开发人员的可维护性。假设您有一个项目的图形设计师,他 Java 但想编辑标记。当然,他们也许能够浏览一个标签库类并找出他们需要更改的内容;也许不是!

总结一下,如果你觉得你可能会传递参数,或者你有业务逻辑,那一路都是Tag Library。如果它只是静态内容和/或您希望非开发人员帮助编辑,也许坚持使用包含的 .jsp

关于java - 最佳实践 : custom jsp tag or include tag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728246/

相关文章:

Java:从 Java 类返回相对 URL?

java - 如何在lucene中查询int和float元素

java - Hibernate孤儿移除-事务隔离级别

java - Servlet 类未找到异常

javascript - 如何在表单提交前触发 onBlur

java - 在方法之间传递变量?

java - 多个字段的条件显示 - JSF 2.0/Primefaces

JSP 文件无法编译 - JSPTranslator.CouldNotLoadClass

java - 如何从jsp中调用java程序的main方法?

java - 如何使用 bootstrap select 在每个 spring mvc3 选择列表中设置所选项目?