在Application.java中按名称返回结果视图

时间:2014-03-02 18:52:38

标签: java playframework-2.0

在Play 2.2中!我正在追求的web项目,我想在Application.java中按名称返回视图

我在路由配置中添加了以下内容:

GET     /:page                      controllers.Application.show(page: String)

我希望Application.java只使用它的名称(String页面)返回正确的视图。

目前我有:

public static Result show(String page) {
    switch(page){
        case "home":
            return ok(home.render());
        case "register":
            return ok(register.render());
    }
    return ok(home.render());
}

我想在这里避免使用switch语句,并以show(String page)编程方式找到与参数中给出的String页面匹配的视图并返回它(如果没有找到匹配则返回主页)。

编辑:我已经阅读了一些关于反思的内容,但我真的不知道那是什么或如何使用它:/

感谢您的见解:)

1 个答案:

答案 0 :(得分:3)

请记住,Play的视图是Scala函数 - 它带有参数,用于确保类型安全动态内容等等。在这种情况下,您不应使用{{ 1}}参数但是使用不同的路由来执行不同的操作,例如:

:path

操作:

GET     /home           controllers.Application.home
GET     /register       controllers.Application.register

加密广告:使用Intellij - 为操作和路由创建模板,您将在几毫秒内完成;)

另一方面,如果你有大量的HTML文件,你可以将它们渲染为...文件,而不是播放视图,如(伪代码,自己调试!

public static Result home() {
    return ok(home.render());
}

public static Result register() {
    return ok(register.render());
}

我只会添加绝对不播放使用模板的方式;)