我正在使用javax.faces.render.Renderer
类来呈现我的自定义组件。我重写encodeBegin
或encodeEnd
来实现所需的输出。
我想知道什么时候应该使用这两种方法?关于何时应使用encodeBegin
和encodeEnd
有任何指南吗?
最佳答案
这取决于组件树的层次结构。关键是,您希望 child 吗?当有 child 时,您希望编码后的输出看起来如何?
通常,如果要在对子项进行编码之前对输出进行编码,则可以使用encodeBegin()
。例如。开始标记,例如HTML <div>
。通常,如果要在对子项进行编码后对输出进行编码,则可以使用encodeEnd()
。例如。结束标记,例如HTML </div>
。或者,也许是一个附加的<script>
,它应该对之前生成的<div>
起作用。