6

play フレームワークを使い始めたばかりで、新しいプロジェクトを作成するときに取得するデフォルトのアプリケーションを理解しようとしました。

私が理解している限りでは、localhost ページをロードするときに、http get リクエストが来てApplication.index()、routes ファイルの仕様のためにメソッドに送られますか? このindex()メソッドでは、大量の HTML コードが生成されて Result オブジェクトに返され、index.scala.htmlファイルに渡され、main.scala.htmlさらに html で囲まれた場所に渡されます。

さて、私にはいくつかのことが不明です:

  • Application.javaこの行のreturn ok(index.render("Hello World!")); インデックスが属していviews.html.*ます。しかし、このパッケージはどこにありますか? 私はAPIでそれを見つけることができません:(

  • index.scala.htmlファイルの名前を変更できないのはなぜですか? 名前は慣例ですか?

  • index.scala.htmlファイル自体に: 何をし@play20.welcome(message, style = "Java")ますか? これは "Welcome to Play 2.0" サイトを取得していますか? 繰り返しますが、play20 のドキュメント/API エントリが見つかりません :(

現時点で本当に混乱しているので、誰かが概要を理解するのを手伝ってくれることを願っています..^^私はJavaをたくさんやったことがありますが、Webプログラミングはまったくしていません.現時点では非常に奇妙です!

4

1 に答える 1

6

TodoListの例では、サイト ルートGET /がメソッドにマップされているApplication.index()ため、このメソッドによって、表示されている html が作成されます。

コントローラーが行うすべてのことは、次の行で行われます: return ok(index.render("Hello World!"));. 基本的に、html を生成して出力を返すいくつかのテンプレートを呼び出します。

  • return ok( ... )成功した要求を示すために使用され、戻りコード 200 が返されます。
  • index.render( ... )という名前のテンプレートのレンダリングされた html 出力を返しますindex。ここで使用されているパッケージは ですviews.html.*が、実際にはviews/index.scala.html. そのため、このindex部分は慣例ではなく、好きなようにその部分の名前を変更できます。テンプレートは、Java クラスのように使用する前にコンパイルする必要があるため、パッケージ名が異なります。フレームワークがこれを処理します。
  • "Hello World!"の最初の行でメッセージパラメータとして指定されている引数です。index.scala.html
  • @play20.welcome( ... )別のテンプレート (フレームワークに含まれているウェルカム ページ) を呼び出すだけです。これは変更の対象ではありません。これは単なる静的ページです。ビューからその行を削除した後、必要な HTML を配置できます。
于 2012-10-11T12:10:04.160 に答える