如何使用Play Framework中的ViewBag等方法将数据从控制器传递到视图

时间:2016-06-24 16:50:54

标签: playframework

在C#中有ViewBag将数据从控制器传递到视图,例如ViewBag.Message = "This is a message",我们在View中将其称为@ViewBag.Message。 Java Play Framework中有这样的东西吗?

2 个答案:

答案 0 :(得分:2)

了解您在@ jsonmurphy的回答中评论过的评论,您也可以这样做:

controllers.Application.search(start: Int)表示在您的控制器中,搜索功能就像public static Result search(int start)一样开始。由于您已经拥有start变量,因此可以将其传递给查看。您需要做的是在start中写return,例如:return Results.ok(search.render(start));

在视图中 @(start: Int)。您可以在任何地方使用它@start。例如:<h1>Start value is @start</h1>

如果要传递多个变量,最好使用@jsonmurphy解释的映射

答案 1 :(得分:0)

不,我不相信。仅仅因为Java没有与C#的动态类型(特别是System.Dynamic.ExpandoObject)类似的语言级别构造。您可以使用常规的Dictionary / HashMap来模拟它,但当然它不那么优雅:

HashMap<String, String> mymap = new ...;
mymap.put("Message","This is a message");
ok(views.html.someview(mymap));

并在视图中:

@(themap: Map[String, String])
....
@themap.get("Message")