Play Framework问题调用render()方法

时间:2012-02-13 13:42:38

标签: java playframework

在我的 / app / controllers 文件夹中,我有一个名为 HTTPResponseErrors.java 的类。在我的代码中,我调用一个Web服务,如果我得到一个大于400的HTTPResponse,我用状态代码调用这个文件,然后假设它是一个通用页面。类文件中的代码只是索引方法,如下所示:

public static void index(int statusCode){
    UpdatedDisplayCounts display = getUpdatedDisplayCounts();
    render("/errors/connectivity_error.html", statusCode, display);
}

UpdatedDisplayCounts 对象呈现正常。我在该行之后添加了一个System.out.println(“Testing”)语句,它显示正常。但是,渲染不会显示页面。它实际上根本没有做任何事情。

有问题的html文件位于 / views / errors 文件夹中。

我已经尝试删除带有前缀的“/”,我确保文件编码是UTF-8,以及我能想到的任何其他内容,但这不会呈现。

我很感激帮助。谢谢!

更新

这是使用Play framework 1.2.4

更新:26-Mar

我将尝试提供更多详细信息,看看我能否解决这个问题,因为这会让我感到害怕,哈哈。

我使用Firebug来查看发布呼叫的情况。响应包含我需要显示的HTML。但是,它永远不会显示。我尝试了renderrenderTemplate,但它不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你试过吗

renderTemplate(“errors/connectivity_error.html”, statusCode, display);

假设errors文件夹是文件夹views的子文件夹。请参阅Play上的Result Types一章!网站:http://www.playframework.org/documentation/1.1.1/controllers

更新2012-02-13:

为了满足这两种方法(render()renderTemplate())按预期工作。

只需确保views文件夹包含errors文件夹,并且errors文件夹中存在html文件。也许测试干净的HTML为:

<!DOCTYPE html>
<html>
<head>
    <title>Test connectivity</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    
</head>
<body>
    Test connectivity
</body>
</html>

如果您使用FireBug或Chrome开发人员工具查看回复,是否会返回任何内容?

此外,我会尝试在Eclipse中运行命令清理和清理项目吗?