1

让我们以 HTML5 标签的简单场景为例。一个<html>标签只能允许一个<head>和一个<body>标签。假设我们有一个HTMLUIComponent, HTMLHeadUIComponent,HTMLBodyUIComponent分别代表上面指定的每个 HTML 标签,我将如何允许HTMLHeadUIComponentandHTMLBodyUIComponent只在 a 内部呈现HTMLUIComponent而不在其他组件中呈现?

4

1 回答 1

1

最简单的方法是在以下期间做这样的事情encodeBegin()

if (!(component.getParent() instanceof HTMLUIComponent)) {
    throw new IllegalArgumentException("HTMLHeadUIComponent must have a parent of type HTMLUIComponent");
}

如果您需要在视图构建期间(而不是视图渲染时间)执行此操作,那么您不能四处为组件创建和添加标签处理程序并在apply()方法中进行检查。

于 2013-06-30T20:19:55.680 回答