Scala模板中的if语句播放框架

时间:2018-09-02 09:32:37

标签: java scala playframework playframework-2.0 twirl

嘿,如果用户登录,他们正在尝试为用户发送值,而不是我在主页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 EXEPTION的相同错误之外 然后显示一些登录表单链接

}else(user!=null){
<a class="dropdown-toggle" data-toggle="dropdown" id="signHover">@user.fname</a>

}

如果有任何建议可以指导我抛出该过程

参考:https://www.playframework.com/documentation/2.6.x/JavaTemplates

3 个答案:

答案 0 :(得分:1)

如果没有用户,假设用户不存在,假设User为空

@(user: User)
@if(user!=null){ 
  // do stuff
} else {
  // do stuff for no user
}

答案 1 :(得分:0)

在scala主页模板中,我正在尝试类似的操作

@(user: User)
@if(user.fname==null){ i even tried @if(user.isEmpty)

答案 2 :(得分:0)

如果user可以为null,请使用Option [User]代替User。在模板内部,您可以使用fold来处理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>