Grails布局未应用于404 URL映射

Grails布局未应用于404 URL映射,grails,Grails,在Grails1.3.1应用程序中,我希望404个错误导致渲染“列表”控制器的主索引操作。此控制器使用layouts目录(views/layouts/list.gsp)中的常规布局文件,然后该文件将包含的代码段用于该操作(views/list/index.gsp) 正常访问此操作()时,将同时应用布局文件和代码段,并且看起来是正确的。但是,当通过UrlMapping类“404”(控制器:“列表”,操作:“索引”)中的404规则访问时,不会使用布局文件,只显示代码段 有人知道为什么会发生这种情况吗

在Grails1.3.1应用程序中,我希望404个错误导致渲染“列表”控制器的主索引操作。此控制器使用layouts目录(views/layouts/list.gsp)中的常规布局文件,然后该文件将包含的代码段用于该操作(views/list/index.gsp)

正常访问此操作()时,将同时应用布局文件和代码段,并且看起来是正确的。但是,当通过UrlMapping类“404”(控制器:“列表”,操作:“索引”)中的404规则访问时,不会使用布局文件,只显示代码段


有人知道为什么会发生这种情况吗?有没有办法让传统布局显示404(或其他)错误映射?

我知道很久以前,这是SiteMesh Grails使用的版本中的一个错误。有一个解决方案,您可以将错误页面包装到:

<g:applyLayout name="main">  
</g:applyLayout>

而不是使用通常的:

<meta name="layout" content="main" />

您确定没有应用布局吗?我使用的是Grails1.3.2,我认为没有应用布局,但实际上是404之后布局中缺少模型和安全标签


如果您的布局内容是从这些可用内容派生出来的,请先尝试“Hello world”以查看它是否显示。

另一个要查找的内容是
sitemesh.xml
配置文件。Sitemesh根据响应的内容类型打开/关闭,此文件声明Sitemesh将处理的内容类型值。在我的例子中,
text/html;charset=UTF-8
不足以处理类型为
text/html
的响应。

这似乎也是Grails 2.1.0的一个问题…@Tristan,你能为你的问题找到解决方案吗?@Igor我想我没有为这个项目找到解决方案(最终放弃了Grails)。