package org.fenixedu.bennu.portal.client; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletResponse; import org.fenixedu.bennu.portal.servlet.PortalBackend; import org.fenixedu.bennu.portal.servlet.SemanticURLHandler; public class ClientSidePortalBackend implements PortalBackend { public static final String BACKEND_KEY = "client-side"; @Override public SemanticURLHandler getSemanticURLHandler() { return (functionality, request, response, chain) -> { String forwardUrl = "/" + functionality.getParent().getPath() + "/" + (functionality.getPath().startsWith("#") ? "" : functionality.getPath()); RequestDispatcher requestDispatcher = request.getRequestDispatcher(forwardUrl); if (requestDispatcher != null) { requestDispatcher.forward(request, response); } else { response.sendError(HttpServletResponse.SC_NOT_FOUND, "No forward url could be processed"); } }; } @Override public boolean requiresServerSideLayout() { return true; } @Override public String getBackendKey() { return BACKEND_KEY; } }