jsp taglib与jsp页面之间的根本区别是什么?

jos*_*evl 8 jsp taglib jspinclude

我有几个常见的元素(组件),将生成一些HTML.似乎我的选择是创建一个taglib,或者只是将该逻辑放入一个jsp页面并包含jsp.

有什么不同?积极与消极?

p3t*_*t0r 6

Taglibs允许您定义可以记录的(类型化)参数.taglibs也可以知道它们在对象树中的位置,因此在不同的上下文中表现不同; 或反复调用特定模板以创建迭代器或语句结构.

您是否意识到taglib不一定要用Java编写?还有一个名为tagfiles的概念,它允许您在JSP中编写taglib; 通常更适合扁平组件......非常接近包括.


Gar*_*our 4

当您使用标记库时,容器通常:

  • 从 _jspService 中编写并调用辅助方法
  • 在辅助方法内部,创建标签类的实例并调用标准方法(setParent()、doStartTag()、doEndTag() 等...)

这将所有代码保留在同一资源中(请求不会传递到另一个组件),因此允许您构建循环行为并访问当前页面上的其他组件。

学习标签库是有开销的。但一旦你的第一个标签开始工作,一切就开始走下坡路了。此外,最终结果对于非开发人员来说更容易理解(假设您为标签选择了好的名称)。