Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 最佳实践:自定义jsp标记还是包含标记?_Java_Jsp - Fatal编程技术网

Java 最佳实践:自定义jsp标记还是包含标记?

Java 最佳实践:自定义jsp标记还是包含标记?,java,jsp,Java,Jsp,代码中可重用jsp组件的最佳实践是什么?编写自定义标记还是使用标记 哪种情况会决定使用其中一种 用例: 我正在尝试重构应用程序的一部分,并希望就如何将html分解为可重用的部分做出明智的决定。我目前正在使用一个自定义标记来构建一个布局,包括页眉和页脚以及html标题和依赖项。但我不确定如何最好地包含在整个应用程序中重复使用的静态html块。从代码库组织的角度来看,使用其中一种方法确实有很多原因 创建标记库而不是使用jsp:include标记的主要原因是提供可能影响生成的标记的参数和值。假设您希望

代码中可重用jsp组件的最佳实践是什么?编写自定义标记还是使用
标记

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

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

从代码库组织的角度来看,使用其中一种方法确实有很多原因

创建标记库而不是使用
jsp:include
标记的主要原因是提供可能影响生成的标记的参数和值。假设您希望传递一个用户名,该用户名将显示在页面标题中,您已经花费了宝贵的时间来检索该用户名。此外,如果您有特别复杂的逻辑(即,任何比条件或循环更复杂的逻辑),则可以使用标记库。没有人希望JSP中有一堆杂乱无章的代码

我想说,不接受总是产生静态输出的参数的标记库在功能上等同于使用
jsp:include

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

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


总之,如果您认为您可能会传递参数,或者您有业务逻辑,那么它一直都是标记库。如果只是静态内容和/或您希望非开发人员帮助编辑,可以使用附带的
.jsp

据我所知,jsp已经不受欢迎,因为在制作可重用组件方面存在困难。它们并不比老式的php Include或shtml Include简单多少。有些人谈论JSF,但我在这些方面的有限经验是,有一个很高的学习曲线。。。。不确定是否有好的体系结构解决方案。GSP是相当无痛的,尽管不幸的是,它们与Grails一起使用,但Grails并不是无痛的。不幸的是,我现在仍然坚持使用这种架构。