私のウェブサイトでは、メイン ナビゲーション バーにドロップダウン メニューがあります。このドロップダウン リストのすべてのページを制限したい - そのため、それらを表示するにはログインが必要であり、ユーザーがログインしていない場合はログイン画面にリダイレクトされます。すべてのプレイを統合しました! 私のプロジェクトにコードを認証し、サンプルプロジェクトplay-authenticate-usageを見ました。彼らの例では、Application.java でこのメソッドを呼び出す制限されたページがあります。
@Restrict(Application.USER_ROLE)
public static Result restricted() {
final User localUser = getLocalUser(session());
return ok(restricted.render(localUser));
}
このメソッドは、表示されるレンダリングされたページを返します。このメソッドを複製して、必要な制限付きページを返すことができるようにしました。
@Restrict(Application.USER_ROLE)
public static Result restrictedCreate() {
final User localUser = getLocalUser(session());
return ok(journeyCreator.render(localUser));
}
この新しいメソッドをルート ファイルに追加しました。
GET /restricted controllers.Application.restrictedCreate()
そして、ドロップダウン コードで変更して、新しいメソッドを呼び出すようにします。
<li><a href="@routes.Application.restrictedCreate()"><i class="icon-plus-sign"></i> @Messages("journeys.dropdown.option1")</a></li>
この段階で、コンパイル エラーが発生します。そのため、 journeyCreator.scala.htmlerror: method render in class journeyCreator cannot be applied to given types;
をレンダリングしようとしているページを確認し、引数を追加します。私のjourneyCreator.scala.htmlはこれになりました:localUser: models.User = null
@(localUser: models.User = null, listJourneys: List[Journey], journeyForm: Form[Journey])
@import helper._
@main("Journey Creator", "journeys") {
......
}
}
ただし、これを行うと、あらゆる種類のエラーが発生します。error: method render in class journeyCreator cannot be applied to given types;
他のメソッドでは、journeyCreator.scala.htmlに関連しています。どんな助けでも大歓迎です。