このコミュニティが非常に活動的でないか、この質問に答えたくないのは悲しいことです。数年経った今でも、Spring および Java コミュニティが最も基本的な質問に答えていることがわかります。これが私がやったことです。改善や提案は大歓迎です。
ユーザーを暗黙的なメソッドとして返すメソッドをコントローラーに作成しました。
implicit def user(implicit request: RequestHeader):Option[Identity] = {
SecureSocial.currentUser
}
このユーザーをテンプレートに渡し、暗黙的にします。なぜコントローラーから直接使用できないのか疑問に思っています。私はそれを明示的に渡す必要がありますが、これは非常に奇妙です。
@(implicit user:Option[securesocial.core.Identity])
ユーザー情報はすべてのページに含まれている必要があるため、メイン テンプレートに含めるか、ユーザー情報をレンダリングする別のテンプレートを呼び出すメイン テンプレートを使用する必要があります。私のメイン テンプレートでは =>
@(title: String, nav: String = "")(content: Html)(implicit user:Option[securesocial.core.Identity]=None)
次に、いくつかのビュー関連のコード
@if(user.isDefined){
<li>
<a href="@securesocial.controllers.routes.LoginPage.logout()"/>Logout</li>
}else{
<li>
<a href="@securesocial.core.providers.utils.RoutesHelper.login()">Login</a></li>
}