Jakarta ee Taglibs与Javaclass:或者如何以最佳方式将两者结合起来

Jakarta ee Taglibs与Javaclass:或者如何以最佳方式将两者结合起来,jakarta-ee,taglib,Jakarta Ee,Taglib,我目前正在为OpenCms编写一个模板,这是一个基于Java的CMS,具有非常好的taglib支持和强大的API 无论如何,当我看教程或源代码时,taglibs或JavaClass用于生成(html)输出的比例大约为50% 我尽量保持我的JSP干净,这意味着不需要太多scriplet代码(而是使用JSTL等等)。在某种程度上,我可能需要对代码进行更多的控制,那就是Java类的出现,在这里我不知道我应该走多远(我个人不喜欢在类中生成HTML的想法) 以下是我想到的一些优点和缺点: 使用taglib

我目前正在为OpenCms编写一个模板,这是一个基于Java的CMS,具有非常好的taglib支持和强大的API

无论如何,当我看教程或源代码时,taglibs或JavaClass用于生成(html)输出的比例大约为50%

我尽量保持我的JSP干净,这意味着不需要太多scriplet代码(而是使用JSTL等等)。在某种程度上,我可能需要对代码进行更多的控制,那就是Java类的出现,在这里我不知道我应该走多远(我个人不喜欢在类中生成HTML的想法)

以下是我想到的一些优点和缺点:

  • 使用taglibs,我不必每次都重新启动servlet容器。我只是做些改变,看看结果如何
  • taglib JSP更易于维护,特别是对于webdesigner,因为其语法“相同”
  • Javaclass提供完全/更多IDE支持(类型/语法检查)
  • 对于更复杂的需求,Javaclass代码更干净(与在JSP中将变量放入pagecontext相比)
  • EL(表达式语言)为JSP/taglib添加了更多功能,但这又是另一种语法,需要学习
  • 关于如何实现这一点,是否有最佳做法?
    因为还有其他同事,将来可能必须维护这个,我正在寻找一个干净的/可维护的解决方案-当你看到一些人的代码时,你可能都知道这种情况,尽管“他/她到底在想什么”;)

    我过去一直把这件事保持得很简单

    当目的是演示时使用标记库。假设您有一块显示代码,您将在一堆页面中重复使用,如果出现堆栈溢出,则使用箭头代码。因为它应该只是显示数据,所以不需要Java代码,我会使用taglib

    需要卷积数据时,请使用Java代码。如果您必须查看资源包或对某些内容应用一些非通用格式,我会使用Java代码,尽管我更喜欢JSTL函数而不是标记


    不要使用这两种方法来访问数据库。

    我过去一直保持这一点非常简单

    当目的是演示时使用标记库。假设您有一块显示代码,您将在一堆页面中重复使用,如果出现堆栈溢出,则使用箭头代码。因为它应该只是显示数据,所以不需要Java代码,我会使用taglib

    需要卷积数据时,请使用Java代码。如果您必须查看资源包或对某些内容应用一些非通用格式,我会使用Java代码,尽管我更喜欢JSTL函数而不是标记

    不要使用这两种方法来访问数据库