说我的jsp:
<%@taglib prefix="foo" uri="/WEB-INF/foo.tld"%>
<html>
....
</html>
是否可以获取taglib声明来输出一些html代码,以便我生成的html为:
<bar>
SomeOutput
</bar>
<html>
...
</html>
我将解释为什么这对我有用。通常我用javascript包装我的特定领域模型,例如当我创建图表时。这样做给了我一个可重复使用的标签来从模型创建图表。为了给出更多的上下文,模型可能是员工列表,图表可能会在直方图或其他图表中显示他们的年龄。
但是我创建的这些自定义标记库通常依赖于存在的JavaScript库。我希望这个声明发生在可能的情况下声明taglib的地方,因为我认为这将提供最干净的解决方案,而不是保守地总是包含库,或者需要记住包含JavaScript库以便我的标签将工作
还会考虑另一种方法,我很好奇其他开发人员在这种情况下做了什么。
答案 0 :(得分:1)
这是AFAIK无法实现的。我将创建一个“init”标签(例如<foo:init />
,它将执行所需的输出,并将控制变量(例如fooInitialized = true
)放入页面/请求上下文。然后您的标签可以检查,是否设置变量(这意味着已完成JS初始化的输出),如果没有则抛出错误。
类似方法使用例如Liferay,您必须使用<portlet:defineObjects />
标记初始化您的portlet对象。