【问题标题】:encodeBegin vs encodeEnd in JSF and which one should be preferredJSF中的encodeBegin vs encodeEnd,应该首选哪一个
【发布时间】:2013-07-08 09:06:31
【问题描述】:

我正在使用javax.faces.render.Renderer 类来呈现我的自定义组件。我覆盖 encodeBeginencodeEnd 以实现我想要的输出。

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

【问题讨论】:

    标签: jsf jsf-1.2


    【解决方案1】:

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

    通常,如果您想在子级编码之前对输出进行编码,您可以使用encodeBegin()。例如。一个开始标签,如 HTML <div>。通常,如果要在子项编码后对输出进行编码,则使用encodeEnd()。例如。一个结束标记,如 HTML </div>。或者可能是一个额外的<script>,它应该适用于之前生成的<div>

    【讨论】:

    • 在孩子被编码之前/之后编码输出?这是否意味着生成像<div><span>span text</span>div text</div>这样的HTML?但这甚至可以在encodeBeginencodeEnd 的单一方法中生成。如果我理解正确,请告诉我。
    • 我是说有孩子,<your:component><other:childA/><other:childB/></your:component>。现在有意义吗?你不应该关心孩子的实际编码。他们都是自己做的。但是使用encodeBegin(),您可以在子级编码之前控制输出,然后使用encodeEnd() 控制输出。
    • 知道了! :) 感谢您的支持。我对这个 JSF 的东西很陌生。
    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2011-07-17
    • 1970-01-01
    • 2017-05-01
    • 2020-06-19
    • 1970-01-01
    相关资源
    最近更新 更多