Да, это возможно, если вы поместите весь статический контент, например изображения, таблицы стилей, javascripts и т. Д., В фиксированную общую папку, такую как /static
, /resources
, /assets
и т. Д., И если вы сопоставите FacesServlet
сам по шаблону URL *.xhtml
.
Затем вы можете создать Filter
, который сопоставляется шаблону URL /*
и прозрачно продолжает цепочку запросов / ответов для всего статического содержимого иотправляет остаток в FacesServlet
.
String uri = ((HttpServletRequest) request).getRequestURI();
if (uri.startsWith("/static/")) {
chain.doFilter(request, response); // Goes to default servlet.
} else {
request.getRequestDispatcher(uri + ".xhtml").forward(request, response); // Goes to faces servlet.
}
Это невозможно с обработчиком навигации, так как он должен выполняться в контексте граней, который доступен только при запуске сервлета граней.