繁体   English   中英

在jsp中声明taglib时,我可以获取它来输出html代码吗

[英]When declaring a taglib in jsp can I get it to output html code

说我在我的jsp中:

<%@taglib prefix="foo" uri="/WEB-INF/foo.tld"%>
<html>
....
</html>

是否有可能获得taglib声明以输出一些html代码,所以我得到的html将是:

<bar>
SomeOutput
</bar>
<html>
...
</html>

我将解释为什么这对我有用。 通常,例如,当我创建图表时,我会使用javascript来包装我特定于域的模型。 这样做给了我一个可重用的标记,可以从模型创建图表。 为了提供更多的上下文,该模型可能是雇员列表,并且图表可能会在直方图或其他图表中显示其年龄。

但是,我创建的这些自定义标记库常常依赖于存在的JavaScript库。 我希望在可能的情况下在声明taglib的地方进行此声明,因为我认为这将提供最干净的解决方案,而不是保守地​​始终包含该库,或者需要记住包括一个JavaScript库,这样我的标签才能工作。

我也很好奇其他开发人员在这种情况下会做些什么,这也是一种替代方法。

这是不可能的。 我将创建一个“ init”标签(例如<foo:init /> ,它将执行所需的输出,还将一个控制变量(例如fooInitialized = true )放入页面/请求上下文中。然后,您的标签可以检查是否设置变量(这意味着使用JS初始化的输出已完成),如果没有,则抛出错误。

使用类似方法,例如Liferay,您必须使用<portlet:defineObjects />标记初始化portlet对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM