JSP - как сделать HTML (или JSP) код из базы данных
У меня есть JSP, который используется несколькими группами пользователей. Требование заключается в том, что каждая группа пользователей хочет иметь индивидуальный внешний вид при доступе к странице (с отличительным параметром). Мы предлагаем разрешить пользователям выгружать html, который им нужен, в таблицу базы данных, а jsp определит группу пользователей и отобразит соответствующий html. Любые указатели о том, как это можно сделать?
Пример: если группа пользователей 1 имеет доступ к URL-адресу abc.com/xyz?param=aaa, то jsp должен отображать HTML-код, который хранится в базе данных, соответствующей UserGroup1. аналогично, abc.com/xyz?param=bbb должен отображать HTML, сохраненный для UserGroup2.
HTML для группы 1:
<html>hello, user 1 </html>
HTML для группы 2:
<html>hello, user 2 </html>
Как мой JSP получает этот HTML-код из сервлетов или любых других классов?
Любые предложения JSF 2.0 также приветствуются.
Приведенный выше пример кода может показаться простым, но в действительности весь макет, изображения, границы, таблицы, содержимое будут отличаться
3 ответа
Различать пользователей с помощью сеанса и управлять им по API
Вместо сохранения всего HTML, который не рекомендуется, как говорит phanneman,
сохранить CSS или CSS фрагменты. например, сохранить в вашей базе данных, пути к изображениям для каждого пользователя,
цвет и т. д. в БД для каждого пользователя.
это может помочь путем извлечения определенных данных для каждой группы пользователей.
ИМО, я бы не стал хранить HTML в БД. Это не то, где оно принадлежит.
Что вы можете сделать (в JSF 2.0) - это создать "шаблонную" страницу, содержащую основные вещи, которые вы повторно используете на каждой странице: верхний колонтитул, основной текст, нижний колонтитул, CSS, JS и т. Д.
На этой странице шаблона вы можете использовать <ui:insert name="body">
тег для определения мест, которые будут определены на каждой странице.
На ваших страницах вы используете <ui:composition template="whateverPage.xhtml"/>
определить ваш шаблон. Затем вы можете вставить нужный код на основе любых параметров, использующих <ui:define name="body">