Служить JSF из базы данных - PullRequest
       4

Служить JSF из базы данных

1 голос
/ 20 августа 2010

возможно ли загрузить страницу jsf 2 из базы данных, а не из файла xhtml? Например, запрос приходит на /faces/foo.xhtml, FacesServet перехватывает запрос, и VieHanlder создает представление foo.xhtml, загружая foo.xhtml из БД, а не с сервера?

Спасибо

1 Ответ

0 голосов
/ 21 августа 2010

Теоретически возможно, если вы поместите его из базы данных в общедоступный веб-контент именно там, где ожидают FacesServlet, до того, как он заработает.

Вот пример запуска:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    String rootPath = req.getSession().getServletContext().getRealPath("/");
    String fileName = req.getServletPath().substring(1);
    File file = new File(rootPath, fileName);

    if (!file.exists()) {
        InputStream input = null;
        OutputStream output = null;

        try {
            input = yourDAO.find(fileName);
            output = response.getOutputStream();
            byte[] buffer = new byte[10240];
            for (int length = 0; (length = input.read(buffer)) > 0;) {
                output.write(buffer, 0, length);
            }
        } finally {
            if (output != null) try { output.close(); } catch (IOException ignore) {}
            if (input != null) try { input.close(); } catch (IOException ignore) {}
        }
    }

    chain.doFilter(request, response);
}

Отобразите это на <servlet-name> из FacesServlet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...