我正在使用javax.faces.render.Renderer类来呈现我的自定义组件。我重写encodeBeginencodeEnd来实现所需的输出。

我想知道什么时候应该使用这两种方法?关于何时应使用encodeBeginencodeEnd有任何指南吗?

最佳答案

这取决于组件树的层次结构。关键是,您希望 child 吗?当有 child 时,您希望编码后的输出看起来如何?

通常,如果要在对子项进行编码之前对输出进行编码,则可以使用encodeBegin()。例如。开始标记,例如HTML <div>。通常,如果要在对子项进行编码后对输出进行编码,则可以使用encodeEnd()。例如。结束标记,例如HTML </div>。或者,也许是一个附加的<script>,它应该对之前生成的<div>起作用。

10-06 02:20