1

私が高く評価している Play 2.0 フレームワークの機能は、静的にコンパイルされたビューです。適切な数の正しい型指定された引数を指定せずにコントローラーがビューをレンダリングすると、コンパイル エラーがスローされます。controller<>view の不一致は、アプリケーションを実行してテストする必要がなく、代わりにコンパイル時に表示されるため、保守性が大幅に向上します。

ただし、標準の Play 2.0 ビュー テンプレートは言語として Scala と組み合わせたプレーンな HTML を使用します。私は Scalate を使用したいので、Scala をあまり冗長でない Scaml または Jade テンプレート言語と組み合わせることができます。しかし、Scalate を使用して実行時にビューをコンパイルしたくありません。これは、前述の静的にコンパイルされたビューの利点が失われるためです。

したがって、他の場所でxsbt-scalate-generator説明されているように、 Jade ビューの静的コンパイルを実装しようとしました。ただし、これは中途半端に過ぎません。プラグインを正しく構成すると、対応するファイルが生成されますが、通常の Play 2.0 ビューとは異なる名前とパッケージが付けられます。という名前のデフォルトの Play 2.0 ビューは、パッケージ内のファイルにコンパイルされます。ただし、という名前の Jade ビューは、デフォルト (空白) パッケージにファイルを作成します。このクラスはインポート可能ではなく、Java Play 2.0 コントローラーでは使用できません。.classindex.scala.htmlindex.classviews.htmlindex.jade$_scalate_$default_jade.class

Scalate ビューのクラス ファイルをreturn ok(views.html.index.render(args));、コントローラに書き込むだけで生成するにはどうすればよいですか?

(生成されたクラスはrender()少なくとも名前付きのメソッドを提供しているようです)

4

1 に答える 1

1

私はそれを行うためのプラグインを始めました。私の作品をチェックしてください: https://github.com/kryptt/play2-scalate-plugin

于 2013-05-08T17:37:57.580 に答える