我想知道是否有人使用某种模板语言在组件的渲染器中生成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组件开发人员如何解决这个问题以及是否对如何处理这个问题有更普遍的共识问题
答案 0 :(得分:1)
尝试将Facelets与JSF一起使用。他们可以在html文件中移动整个渲染器代码。你不需要用Java来做。如果您需要一些样品,那么我可以分享。
答案 1 :(得分:0)
我不确定在渲染器中使用模板有任何共识 - 当然,JSF specification中没有任何内容。在JSF中使用模板的主要工作是通过Facelets在视图定义级别,但是在编写渲染器时这没什么用。
可能值得查看一些开源组件库构建过程,看看他们是否已经解决了这个问题。