Reputation: 663
I tried to access session attribute using scala and play frame work. but could n`t get success. here is the code
User.scala
def login = Action { implicit request =>
val newLoginForm = loginForm.bindFromRequest()
newLoginForm.fold(
hasErrors = { form =>
Redirect(routes.Users.loginUser()).
flashing(Flash(form.data) +
("error" -> "Fill user name and Password"))
},
success = { implicit newUser =>
if(User.findUserBydb(newUser.uname,newUser.pass)){
Ok(views.html.pages.page_one()).withSession("mysession"-> "[email protected]")
}else{
Redirect(routes.Users.loginUser()).
flashing("error" ->"Invalid Login")
}
}
)
}
view ---- > page_one.scala.html
@import play.api.Play.current
@import play.api.i18n.Messages.Implicits._
@import play.api.mvc.Session
@import play.api.mvc.Request
@index("Hi"){
<h2>
Welcome @request.session.get("mysession")
</h2>
}
Upvotes: 3
Views: 2887
Reputation: 2804
If you need the session on the view, you will need to add the implicit request (implicit request: play.api.mvc.RequestHeader)
. So your code will be something like
@import play.api.Play.current
@import play.api.i18n.Messages.Implicits._
@import play.api.mvc.Session
@import play.api.mvc.Request
@()(implicit request: play.api.mvc.RequestHeader)
@index("Hi"){
<h2>
Welcome @request.session.get("mysession")
</h2>
}
Upvotes: 4