Я реализую корпоративное приложение с Java EE на сервере Glassfish. Мне нужно, чтобы мое приложение выполнило некоторую логику, чтобы показать правильный вывод для определенного подмножества URL-адресов.Java EE - Показать страницу на основе внутренней бизнес-логики
Описание проблемы:
Моя папка веб-страниц имеет такую структуру:
Web Pages
Protected
- CorrectPage.xhtml
- A.xhtml
- B.xhtml
- Index.xhtml
Я хочу пользователю получить доступ к URL:
/Protected/CorrectPage.xhtml
Но пользователь не должен быть в состоянии обращайтесь по следующим адресам:
/Protected/A.xhtml
/Protected/B.xhtml
Когда введен URL /Protected/CorrectPage.xhtml, я хочу выполнить некоторую логику и в зависимости от результата этой логики я хочу показать либо A.xhtml, либо B.xhtml без каких-либо видимых изменений URL (перенаправления).
Solutions пытался до сих пор:
Я думал об использовании сервлета сопоставлен /Protected/*.xhtml, оставляя сделку Faces Servlet с любым другим URL в моем приложении.
и имеющий:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if(*Requested URL is /Protected/CorrectPage.xhtml*) {
if(logic())
*Show A.xhtml*
else
*Show B.xhtml*
} else
*Show 404*
Моя проблема заключается в том, что я не знаю, как реализовать Show A.xhtml. Я в основном хочу распечатать на клиенте мою страницу xhtml.
Я также подумал о решении этой последней проблемы с помощью ответа PrintWriter.
PrintWriter pw = response.getWriter();
Но чем снова это не решает мою проблему, так как я не знаю, как распечатать файл Xhtml, а также имея оценку языка выражений, содержащихся в нем.
Заключение
Любая помощь чрезвычайно ценится. Даже если это означает изменение чего-то в структуре, которую я предложил. Естественно, если создание сервлета не является правильным решением для моих проблем, я оставлю этот трек.
Меня интересует только результат, который испытает пользователь.
Заранее спасибо
сделать эти ресурсы (XHTML файлы - A.xhtml, B.xhtml ...), доступные в 'WEB-INF' и направить запрос на них на основе на этом ", * в зависимости от результата этой логики я хочу показать либо A.xhtml, либо B.xhtml без каких-либо видимых изменений URL *". (сделайте связанный с ним метод действий возвратом соответствующего результата в случае навигации, например 'return '/WEB-INF/pages/A.xhtml"; '). – Tiny
«Я хочу показать либо A.xhtml, либо B.xhtml без каких-либо видимых изменений URL (перенаправления)», вы хотите, чтобы пользователь видел другую страницу без изменения URL-адреса, как это возможно? – Biu
Я попробую это решение Tiny. Я об этом не думал. – sofask