与hasErrors
类似
<div class="form-group @if(elements.hasErrors) {error}">
@** this does not work **@
@if(!elements.label.isEmpty && elements.label != null)
<label for="@elements.id">@elements.label</label>
}
@elements.input
@** this does not work **@
@if(!elements.infos.isEmpty && elements.infos != null) {
<p class="help-inline">@elements.infos.mkString(", ")</p>
}
@if(elements.hasErrors) {
<p class="help-inline">@elements.errors.mkString(", ")</p>
}
</div>
即使检查空字符串也没关系。我无法弄清楚如何做。
在视图中:
@inputText(
loginForm("member"),
'placeholder -> "email or username",
'_help -> "",
'_label -> null,
'class -> "form-control"
)
我正在使用Play Framework 2.2.x
答案 0 :(得分:4)
首先,你必须改变你的逻辑。您始终先检查null
,否则您可能会尝试在null
上调用方法。
其次,如果您在此处发布问题时包含了实际错误,则会有所帮助。不要只是说它&#34;抛出错误&#34;。
从我的快速测试看来,它似乎抱怨Scala的isEmpty
课程中不存在Any
方法。但是,它确实有一个toString
,你可以先调用它来获得你想要的东西。
@if(elements.label != null && !elements.label.toString.isEmpty) {
...
}
答案 1 :(得分:1)
我认为你的布尔逻辑有误。您的标题显示“null或empty”,但您的代码显示“not(empty)or not(null)”。
你可能想用“和”代替“或”,即
@if(elements.label != null && !elements.label.isEmpty) {
<label>...</label>
}