允许在特定UIComponent内呈现UIComponent

时间:2013-06-30 20:14:01

标签: jsf-2 rendering custom-component

我们来看一个HTML5标签的简单场景。 <html>代码只能包含一个<head>和一个<body>代码。假设我们有HTMLUIComponentHTMLHeadUIComponentHTMLBodyUIComponent分别代表上面指定的每个HTML标记,我如何才允许HTMLHeadUIComponentHTMLBodyUIComponent仅在内部呈现一个HTMLUIComponent而不是其他组件?

1 个答案:

答案 0 :(得分:1)

最简单的方法是在encodeBegin()期间执行类似的操作:

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

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