在我的 / 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。但是,它永远不会显示。我尝试了render
和renderTemplate
,但它不起作用。有什么建议吗?
答案 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中运行命令清理和清理项目吗?