我们来看一个HTML5标签的简单场景。 <html>
代码只能包含一个<head>
和一个<body>
代码。假设我们有HTMLUIComponent
,HTMLHeadUIComponent
,HTMLBodyUIComponent
分别代表上面指定的每个HTML标记,我如何才允许HTMLHeadUIComponent
和HTMLBodyUIComponent
仅在内部呈现一个HTMLUIComponent
而不是其他组件?
答案 0 :(得分:1)
最简单的方法是在encodeBegin()
期间执行类似的操作:
if (!(component.getParent() instanceof HTMLUIComponent)) {
throw new IllegalArgumentException("HTMLHeadUIComponent must have a parent of type HTMLUIComponent");
}
如果您需要在视图构建期间(而不是查看渲染时间)执行此操作,那么您无法为组件创建和添加标记处理程序,并在apply()
方法中进行检查