我正在编写Grails应用程序,有时会响应422 http状态代码(在无效的AJAX调用上)。在Glassfish上部署时,容器在我的视图呈现文本后包含默认错误页面。
如何更改此行为?
此致 塔尔莫
答案 0 :(得分:2)
如果您想为整个域更改它(下面的解决方案仅适用于特定的应用程序上下文),您需要调整 domain.xml 。
...
<config name="server-config">
<http-service>
<access-log />
<virtual-server id="server" network-listeners="http-listener-2,http-listener-1">
<property name="send-error_1" value="code=404 path=/tmp/404.html reason=Resource_not_found" />
</virtual-server>
<virtual-server id="__asadmin" network-listeners="admin-listener" />
</http-service>
...
(如How to change default error page(status 404 - not found) in GlassFish 3.0.1 Community Edition?)
答案 1 :(得分:1)
在web.xml中添加<error-page>
元素应该有效:
<error-page>
<error-code>422</error-code>
<location>location_of_your_custom_error_page</location>
</error-page>
为此,请运行:
grails install-templates
修改
src/templates/artifacts/war/web.xml
答案 2 :(得分:1)
在Grails应用程序中,您可以通过在grails-app/conf/UrlMappings.groovy
中创建响应代码URL映射来配置错误代码映射。此URL映射可以让您map a status code to an error page specific to that code。
class UrlMappings {
static mappings = {
"422"(controller:"errors", action:"my422Error")
...
}
}