1

XPages アプリで Freemarker テンプレート エンジンを使用したいのですが、XPages 環境で動作させることができません。私が抱えている問題は、正しく設定する方法がわからないテンプレート パスに関連しています。Freemarker は、テンプレートがファイル システムのどこかにあると単純に想定しています。関連するJavaクラスが存在するのと同じディレクトリにテンプレートファイルを配置しました。そのようなファイルへのパスは、私にとってはうまくいきxspnsf://server:0/xpages_tests.nsf/WEB-INF/classes/tcl/ません。これを経験した人はいますか?File() コンストラクターによって受け入れられる nsf へのディレクトリ パスが必要なだけです。この仮想xspnsf://....は、Java ファイル オブジェクトでは理解できません。

Freemarker のテンプレート パス コードは次のとおりです。

Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("??????"));
Template temp = cfg.getTemplate("tmp.ftl");
4

2 に答える 2

1

クラスと一緒にテンプレートを保存しているのですから(よくわかるのですが)、使えないのでしょcfg.setClassForTemplateLoading(SomeClassFromThere.class, "/com/example/yourapplication/templates")うか?

于 2013-03-04T21:29:27.303 に答える
0

代わりにVelocity ( http://velocity.apache.org/ ) を使用してみてください。これにより、任意の場所からテンプレートを簡単にロードできるカスタム リソース ローダーを作成できます (たとえば、notes db のドキュメントから)。

さまざまな xpage プロジェクトで何度も使用されているのを見てきましたが、うまく機能します。

于 2013-03-04T15:44:24.643 に答える