以编程方式渲染Play 2.0视图

时间:2013-03-05 10:40:09

标签: java playframework-2.0

使用Play 2.1.0,我有一个Java控制器,其动作负责呈现任意html视图。

例如:

class HtmlClientViews extends Controller {    
    public static void getView(String viewName) {
        return ok(/*How to render the view programmatically?*/)
    }
}

在我的观点中,我有一个名为account.html.scala的视图。

我的路线如下:

GET   /htmlclient/*viewName        controllers.HtmlClientViews.getView(viewName)

如果我发出像/htmlclient/account.html这样的请求,我想呈现名为account.html.scala的视图

我还没有尝试过使用Java反射机制,但想知道实现这一目标的最有效方法是什么。

1 个答案:

答案 0 :(得分:1)

你可以用:

  1. 反思,就像在Play Authenticate使用示例中一样,它用于根据检测到的语言选择不同的视图
  2. 如果您有已知数量的视图,则可以在控制器中使用简单的switch语句来返回视图abcd
  3. 同样如果没有。 2 - 您可以在视图中使用matching语句根据某个变量包含子视图。