【问题标题】:JSF renderers - using templatesJSF 渲染器 - 使用模板
【发布时间】:2010-10-28 18:43:49
【问题描述】:

我想知道是否有人有使用某种模板语言在组件的渲染器中生成 html 输出的经验。

在我看来,如果您的组件渲染在其生命周期中会发生变化,那么执行以下操作就很难维护。

 writer.write('\n');
 writer.startElement("script", null);
 writer.writeAttribute("type", "text/javascript", null);
 writer.writeAttribute("language", "Javascript", null);
 writer.write("var checkbox_off = \"" + CHECKBOX_OFF_IMAGE_PATH + "\";\n");
 writer.write("var checkbox_on = \"" + CHECKBOX_ON_IMAGE_PATH + "\";\n\n");
 writer.write("cache1 = new Image("
                    + CHECKBOX_IMAGE_WIDTH
                    + ","
                    + CHECKBOX_IMAGE_HEIGHT
                    + ");\n");
 writer.write("cache1.src=checkbox_off;\n");
...

我看过一些讨论使用 Velocity 作为渲染器模板语言的文章 (http://people.apache.org/~matzew/jsfvelocity.html),但我只是在阐述其他 JSF 组件开发人员如何解决这个问题,以及对于如何处理这个问题是否有更普遍的共识。

【问题讨论】:

    标签: jsf templates components velocity renderer


    【解决方案1】:

    尝试将 Facelets 与 JSF 一起使用。他们可以将整个渲染器代码移动到一个 html 文件中。您不需要在 Java 中执行此操作。如果你需要一些样品,我可以分享。

    【讨论】:

      【解决方案2】:

      我不确定在渲染器中使用模板是否有任何共识 - 当然,JSF specification 中没有任何内容。在 JSF 中使用模板的主要工作是在视图定义级别通过 Facelets,但这在编写渲染器时用处不大。

      可能值得查看一些开源组件库构建过程,看看它们是否已经解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-30
        • 2016-06-24
        • 2015-02-15
        • 1970-01-01
        • 1970-01-01
        • 2012-09-08
        • 2011-12-27
        • 1970-01-01
        相关资源
        最近更新 更多