我是Twirl的新手,我正在尝试使用Play创建TODO应用程序,就像我现在拥有它一样,我正在尝试发送两个对象(ArrayList
和String
)。我在try catch中将一些代码包装在控制器中。如果捕获到异常,则应使用String
而不是ArrayList
呈现模板,如果没有捕获到异常,则返回ArrayList
,但不返回{{1 }}。我试过将{1}作为String
,但我觉得有更好的方法。在那儿?这是我的Twirl:
null
答案 0 :(得分:1)
您可以使用Option
s:
@(maybeMessage: Option[String], maybeTasks: Option[Seq[Task]])
<!DOCTYPE html>
<html>
<head>
<title>TODO</title>
</head>
<body>
<h1>TODOs</h1>
@for(message <- maybeMessage) {
<p>@message</p>
}
@for(tasks <- maybeTasks) {
@for(task <- tasks) {
<li>@task.task</li>
}
}
</body>
</html>
然后从您的控制器:
Ok(views.html.foo(None, Some(Seq(Task("task 1"), Task("task 2")))))
Ok(views.html.foo(Some("Something went wrong."), None))