嘿伙计们试图为用户发送一个值,如果他已登录,而不是我在主页scala模板中执行if语句
User loggeduser = User.find.query().where().eq("token",
session("connected")).findOne();
return ok(main.render(loggeduser));
在scala主页模板我正在尝试这样的事情
@(user: User)
@if(user.fname==null){ i even tried @if(user.isEmpty)
并尝试将fname保持在外部,但是对于NULL POINTER EXCEPTION则显示相同的错误,然后显示一些登录表单链接
}else(user!=null){
<a class="dropdown-toggle" data-toggle="dropdown" id="signHover">@user.fname</a>
}
如果有任何建议,请指导我完成整个过程
参考:https://www.playframework.com/documentation/2.6.x/JavaTemplates
如果没有用户,假设User为null,那么你应该没有
@(user: User)
@if(user!=null){
// do stuff
} else {
// do stuff for no user
}
在scala主页模板我尝试这样的事情
@(user: User)
@if(user.fname==null){ i even tried @if(user.isEmpty)
如果用户可以为null,请使用Option [User]而不是User。在模板内部,您可以使用折叠来处理Option。
在Scala中使用null是一种不好的做法。如果一个变量可以为null,那么使用Option,让它知道一个变量可以为null,表达所有。
@(userOpt:Option[User])
<div>SOME HTML</div>
@userOpt.fold {
<div>USER ISN'T LOGGED</div>
} { user =>
<div>USER IS LOGGED! @user</div>
}
<div>SOME HTML</div>