2

Playはモデルとコントローラーを使用していますが、backbone.jsとクライアントサイドのテンプレートを使用してアプリケーションを構築しています。さて、バッキングコントローラなしで、PlayでHTMLテンプレートを提供したいのですが。テンプレートをパブリックディレクトリに置くことができるのは分かっていますが、Playのテンプレートエンジンを使用してテンプレート内の文字列をメッセージファイルから入れたいと思います。私は他のデータを必要としないので、各テンプレートに対してダミーのコントローラを作成するのは苦労したくありません。 Playでこれを行うことはできますか?Playでコントローラーを使用しないビューをレンダーする

答えて

2

コントローラを1つ作成してテンプレート名をパラメータとして渡すこともできますが、それが良い考えかどうかはわかりません。

public static void controller(String templateName) { 
    // add whatever logic is needed here 
    renderTemplate("Controller/"+templateName+".html");  
} 

次に、そのコントローラメソッドへのすべてのルートをポイントします。しかし、逆方向ルーティングについては忘れてしまいます。

私はまだ各テンプレートに対して別々のコントローラメソッドを持っていると思います。 @Before注釈(Play Framework documentationを参照)を使用して、各コントローラメソッドの前に実行される正確に1か所でメッセージ文字列を処理できることに注意してください。 @Withアノテーションを使用することで、このロジックを別のクラスに含めることもできます。

1

あなたはあなたのコード内の任意の場所からテンプレートエンジンを使用することができます。

String result = TemplateLoader.load("Folder/template.html").render(data); 
関連する問題