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