获取根页面的页面属性到/apps/sling/servlet/errorhandler/Throwable.jsp



我有一个简单的用例,如下:

  1. AEM
  2. 抛出500错误
  3. 最终用户被重定向到/apps/sling/servlet/errorhandler/Throwable.jsp,其中包含500错误页面的位置。

然而,我想做的是,在页面属性advance选项卡中创建一个路径字段,以便作者可以在根页面设置错误500页。

使得:

如果在:/content/sitename/en/home/products/myproduct.html抛出500错误错误500页属性设置在:/content/sitename/zh/错误500页位于/content/sitename/en/home/errors/500.jsp

CQ应该在页面树结构中搜索,从错误抛出的地方到错误500页设置的地方,然后无论它在哪里找到错误处理程序设置的第一个属性,它都会通过/apps/sling/servlet/errorhandler/Throwable.jsp将其重定向到500页。

所以,在/apps/sling/servlet/errorhandler/Throwable.jsp中,完整的代码是:

    <%@page session="false"
      import="com.day.cq.wcm.commons.WCMUtils"
      import="org.apache.sling.api.resource.Resource"
      import="javax.jcr.Node"
      %>
      <%
     %><%@include file="/libs/foundation/global.jsp" %>
     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     <%
          String errorPage= WCMUtils.getInheritedProperty(currentPage,    resourceResolver, "errorrPageRedirect");
       %>
      <c:redirect url="${errorPage}"/>

        Doesn't seems to be working. Am I missing something ?

你看过https://adobe-consulting-services.github.io/acs-aem-commons/features/errorpagehandler.html吗?

您甚至可以为不同的路径指定不同的404页面。我不记得是否有限制在哪里的错误页必须相对于路径,但它符合您的要求。

最新更新