2008-09-29 80 views

回答

4

当您使用标签库的容器通常是:

  • 写入和从内部_jspService
  • 调用一个辅助方法里面的辅助方法,标签类的实例被创建和标准方法被调用(的setParent ()的doStartTag(),doEndTag()等)

这使(请​​求没有得到传递给另一个组件相同的资源内的所有代码),从而允许你建立循环行为和访问其他组件他目前的页面。

在学习标签库方面存在开销。但是,一旦你有了第一个标签,它就会全力以赴。最后的结果对于非开发人员来说也更容易理解(假设您为标签选择了好名字)。

-2

taglibs可以更容易地定义和处理参数,但是开发它们有很大的开销。包含更简单但功能更弱。很大程度上取决于你的风格。

以我的经验,人们通常只使用包括,因为他们不想花时间学习创建tablibs。导致公平混乱。只要你的队伍小而且你的队伍不太复杂,那也不算太坏。但它是一种代码味道。

6

Taglibs允许您定义(键入)您可以记录的参数。另外taglibs可以知道它们在对象树中的位置,因此在不同的上下文中采取不同的行为;或者反复调用特定的模板来创建迭代器或语句结构。

您是否知道taglibs不一定必须用Java编写?还有一个叫做tagfiles的概念,它允许你在JSP中编写你的taglib;通常更适合平面组件...非常接近包含。

+0

是的,酷,现在正在开发tagfiles,虽然弄糊涂了什么差异与jsp。 继承人一个场景,我需要做一些依赖注入,所以一直在寻找一个标签文件的jspinit,但它似乎只适用于jsps? – joshjdevl 2008-09-29 17:45:52

+0

在这种情况下,究竟是什么意思bij'依赖注入'?您是在模型2还是基于组件的架构中工作?你能否举一个你想达到的目标? – p3t0r 2008-09-29 18:35:04

+0

component based.each tagfile是它自己的indep组件。 tagfile调用一些spring管理的服务bean,ex service1获取所有customers.i的列表,我希望这个标签文件处理获取服务bean,方法调用,然后将结果格式化为一个漂亮的表格。这个标签文件包含在jsp中。 – joshjdevl 2008-09-29 19:05:09

1

标签(其中包含易于使用的类JSP标签文件机制)支持强类型命名参数的调用。

另一个令人难以置信的有用和令人惊讶的常常被忽略的JSP标签功能是JspFragment属性类型。这使您可以将一大块JSP代码作为参数传递到要调用的标记中,可能会重复。

包括缺乏这些强大的参数化功能。