有没有办法限制自定义标签的使用,以便它只能在特定标签中使用?

时间:2011-09-01 17:59:54

标签: jsp jsp-tags

我有一个<filter:filters>代码和一个<filter:filter>代码。这些是JSP自定义标记。有没有办法指定<filter:filter>标记不能单独使用,并且只能用作<filter:filters>标记的子标记?

1 个答案:

答案 0 :(得分:3)

似乎没有声明/ TLD方式来执行此操作。

JSP 2.0允许您通过扩展类javax.servlet.jsp.tagext.TagLibraryValidator并实现验证消息来实现转换时转换器。

您也可以在运行时通过使用SimpleTag.getParent()方法执行此操作,如果父级的类型不正确,则抛出异常。

它可能看起来像这样:

public void doTag() {
   if (!(getParent() instanceof Filters)) 
      throw new Exception("A filter can only be used inside a filters tag.");
}