/** * Redirect the user to the 404 page * * @param response the Hst response */ public void redirectToNotFoundPage(HstResponse response) { try { response.forward("/404"); } catch (IOException e) { throw new HstComponentException(e); } }
/** * Sets {@code HttpServletResponse.SC_NOT_FOUND} error code onto request. * * @param response * @see javax.servlet.http.HttpServletResponse#SC_NOT_FOUND */ public void pageNotFound(HstResponse response) { final HstRequestContext context = RequestContextProvider.get(); String pageNotFoundPath = getComponentParameter(PAGE_404); if (Strings.isNullOrEmpty(pageNotFoundPath)) { pageNotFoundPath = PAGE_404; } final HippoBean bean = context.getSiteContentBaseBean().getBean(pageNotFoundPath, HippoBean.class); response.setStatus(HttpServletResponse.SC_NOT_FOUND); if (bean != null) { final HstLinkCreator hstLinkCreator = context.getHstLinkCreator(); final HstLink hstLink = hstLinkCreator.create(bean.getNode(), context); try { response.sendRedirect(hstLink.toUrlForm(context, false)); } catch (IOException e) { log.warn("Error redirecting to 404 page: [{}]", PAGE_404); } } else { // check if we have pagenotfound config final ResolvedSiteMapItem resolvedSiteMapItem = RequestContextProvider.get().getResolvedSiteMapItem(); if (resolvedSiteMapItem == null) { return; } final HstSiteMap siteMap = resolvedSiteMapItem.getHstSiteMapItem().getHstSiteMap(); final HstSiteMapItem pagenotfound = siteMap.getSiteMapItemByRefId(PAGE_NOT_FOUND); if (pagenotfound != null) { String link = pagenotfound.getValue(); try { response.forward('/' + link); } catch (IOException e) { log.error("Error forwarding to " + PAGE_NOT_FOUND + " page", e); } } } }