2

コンポーネントのレンダラーで 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 コンポーネント開発者がこの問題をどのように解決したか、また、この問題を処理する方法についてのより一般的なコンセンサス。

4

2 に答える 2

1

JSF で Facelets を使用してみてください。Renderer コード全体を html ファイルに移動できます。Javaで行う必要はありません。サンプルが必要な場合は、共有できます。

于 2009-05-28T15:42:13.180 に答える
0

レンダラーでテンプレートを使用することについてコンセンサスがあるかどうかはわかりません。確かに、JSF 仕様には何もありません。JSF でテンプレートを使用するための主な作業は、Facelets を介したビュー定義レベルですが、これはレンダラーを作成するときにはほとんど役に立ちません。

オープン ソース コンポーネント ライブラリのビルド プロセスのいくつかを調べて、この問題に既に取り組んでいるかどうかを確認する価値があるかもしれません。

于 2009-05-25T16:43:54.187 に答える