我使用javax.faces.render.Renderer
类来渲染我的自定义组件。我重写encodeBegin
或encodeEnd
以获得我想要的输出。
我想知道何时应该使用这些方法中的任何一种?是否应该使用encodeBegin
和encodeEnd
何时使用指南?
答案 0 :(得分:6)
这取决于组件树层次结构。关键是,你期待孩子吗?当有孩子时,您希望编码输出看起来像什么?
通常,如果要在编码子项之前对输出进行编码,则使用encodeBegin()
。例如。像HTML <div>
这样的开始标记。通常,如果要在编码子项后编码输出,则使用encodeEnd()
。例如。像HTML </div>
这样的结束标记。或者可能是额外的<script>
,它应该适用于之前生成的<div>
。