2011-01-27 11 views
33

デフォルトのパッケージをPlayから変更することが可能かどうかは疑問でした。たとえば、 "controllers"パッケージを "com.test.controllers"に変更したいとします。私はこれが意味をなさないかどうかわかりませんが、可能であればどうすればいいか知りたいだけです。私はこのウェブサイトに関連するものは見つけられませんでした。Play Framework:デフォルトのパッケージを再生する方法は?

答えて

5

play1と2の区別を解除するように更新されました。

再生1.xでは、これはできません。

いいえ、すべてのコントローラは、パッケージまたはコントローラのサブパッケージに含まれている必要があります。 あなたはcom.testパッケージ構造を維持したい場合は、あなたがPlay2.xについての詳細情報についてはcontrollers.com.test

see this thread.

を行うことができ、これは可能です。

したがって、単純な答えは...あなたが使用しているプレイのバージョンによって異なります。

+0

他の回答に記載されているように、大文字と小文字は間違っています。 –

+1

それほど単純ではありません。プレイ1とプレイ2は非常に異なるフレームワークであり、単純なアップグレードパスではないため、実際にはプレイ2はこれを可能にしますが、現在のバージョンのプレイ1は許可しています。 – Codemwnci

13

manualから:

A Controllerクラスは コントローラパッケージで定義されなければならないと play.mvc.Controllerのサブクラスでなければなりません。

コントローラ パッケージのすぐ下に が定義されていない場合は、 コントローラクラス名の前にJavaパッケージを追加できます。 コントローラパッケージ 自体は暗黙的なので、 を指定する必要はありません。

これは(ルートパッケージはcontrollersでなければならないので)あなたがcom.test.controllersにごcontrollersパッケージを変更することはできませんことを意味していますが、controllers.com.testに変更することができます。

+3

これで可能になりました。以下の回答を参照してください:http://stackoverflow.com/a/9994758/808125 –

1

これについての議論があるhereです。

FAQにもthisがあります。

+0

リンクのみではなく説明を追加してください。リンク腐敗。詳しくはhttps://meta.stackexchange.com/questions/144566/new-policy-on-link-only-answersを参照してください。 –

20

currentが2.0ドキュメントを再生するによると、これが可能になりました:

注プレイ2.0で、コントローラ、モデルとビューのパッケージの命名規則は、今まさにそれであり、必要に応じて変更することができること(例えばcom.yourcompanyですべてを接頭辞として使用)。

これは、空のPlayアプリケーションに適しています、何か他のもののためのノートを取るしかし、いくつかの詳細があります:ビューテンプレートにカスタム名前空間をインポート

  1. があるものを除き、すべての種類のために動作しますテンプレートの最初の行で宣言されています。これは、ビューから生成されたscala render関数の引数です。回避策は、最初のビューテンプレートの型宣言に完全なパッケージ名を追加することです。
  2. Play 2.0では、ルートファイル(カスタムパッケージやAssetsルートのデフォルトパッケージなど)に定義されているすべての名前空間について、同じ名前空間内に対応するルートソースファイルが生成されるため、正しいファイル例えばリダイレクトを行う。
+0

ポイント2を理解するのに問題がありました。デフォルトのパッケージからパッケージfoo.barに移動すると仮定すると、ビュー内のリモートルートはroutes.Application.methodからfoo.bar.controllers.Application.methodに変更する必要があります。 –

+3

myMethodというハンドラメソッドを持つMyControllerコントローラがあるとします。 "コントローラ"パッケージから "com.example.controllers"に移動する場合は、Scalaのテンプレートで(1)@ routes.MyController.myMethod()を@ com.example.controllers.routes.MyControllerに変更する必要がありますコントローラクラス自体の.myMethod()および(2)を変更する場合は、controllers.routes.MyController.someMethod()からcom.example.controllers.routes.MyController.someMethod(またはフォームをPOSTした後など) )。 –

+0

私は2.4.xを使っています。com.yourcompanyでパッケージの接頭辞を付けるにはどうしたらいいですか?私は 'com/yourcompany'の下に' app'、 'conf'、' public'と 'test'を持っていますが、sbtはそれらのフォルダ内の.javaファイルをコンパイルしていないようです。私はこれの周りの文書を見つけることができないようです。 – ronaldwidha

関連する問題