我想让我所有的 http 错误页面统一,以便使用我的网站主题显示它们。开箱即用的 liferay 似乎正在处理一些错误并忽略其他错误,让 tomcat 以众所周知的格式显示它们。现在 404 例如由 liferay 处理。它由 status.jsp 显示,并且与我网站的其他部分具有相同的主题。status.jsp 似乎只支持一些错误消息,例如 404 和 500。我解决此问题的想法是在 ROOT/WEB-INF/web.xml 中添加更多错误代码,例如 401,403,405 等。我可以将所有这些指向一个 jsp ROOT/errors/error.jsp,它执行类似的操作
<body onload="javascript:location.replace('http://localhost:8080/c/portal/status?err=<%= pageContext.getErrorData().getStatusCode() %>&uri=<%= pageContext.getErrorData().getRequestURI() %>')">
这样我就可以将一些必要的数据放入 status.jsp。并且可以使用覆盖原始 status.jsp 的钩子显示包含 http 代码和导致它的 URI 的消息。
现在,这是实现统一状态页面的合理方式吗?有没有更好的办法?