Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Якорь
extension
extension

JSP шаблоны используются в BGCRM для генерации всего HTML интерфейса, а также как шаблоны печатных форм в плагине Document. В сочетании с библиотекой тегов и возможностью лёгкого вызова Java кода, JSP предоставляет обширные возможности по адаптации интерфейса.

Информация

Пользовательские JSP страницы располагайте в каталогах WEB-INF/jspf/.../custom/.., это гарантирует вас от перетирания названия каталога штатными шаблонами.

...

Например: "/WEB-INF/jspf/user/process/process/custom/process_jur/zayavka.jsp".

Вкратце схема работы JSP шаблона представлена на схеме ниже.

 

На вход шаблона передаётся объект Request. Изначально это чаще всего HTTP запрос с параметрами, но в общем и целом это просто некий Map c Java объектами. По мере обработки запроса в этот Map помещаются:

Image Added

  • ссылки на объекты контекста, чаще всего различные справочники в фильтре
    Crm_javadoc
    Nameru.bgcrm.servlet.filter.SetRequestParamsFilter
    ;
  • объект с параметрами запроса
    Crm_javadoc
    Nameru.bgcrm.struts.form.DynActionForm
    ;
  • различные данные после отработки серверных Action ов.

Любой объект в Request доступен в JSP шаблоне как ${object}. Для вызова метода ${object.method()}. На выходе шаблона образуется по сути текст, который указан в шаблоне, за исключением специальных инструкций. Это может быть HTML, передаваемый на клиента, либо простой текст. Специальные инструкции, оперируя с объектами из Request, добавляют в этот текст дополнительные данные.

JSP технология предоставляет возможность расширения функциональности с использованием библиотек тегов и функций. BGCRM также предоставляет собственный набор тегов, который особенно активно используются, например, для формирования интерфейса пользователя.

Обзор использования тегов с элементами управления пользователя вы можете посмотреть в файле webapps/test.jsp, для выполнения шаблона наберите в браузере http://<host>:<port>/test.jsp. Полный обзор библиотеки BGCRM вы можете получить в файлах объявлениях webapps/WEB-INF/tld/...

Хотелось бы особо отметить следующую возможность. Создание произвольного Java объекта, использование параметризованного конструктора, что не позволяет стандартный тег <bean>. Данный подход позволяет существенно уменьшить использование скриплетов (вставок Java кода).

Блок кода
languagejava
<u:newInstance var="paramDao" clazz="ru.bgcrm.dao.ParamValueDAO">
    <u:param value="${conSlave}"/>
</u:newInstance>

Шаблон может менять объекты в Request. Этот немного нестандартный метод используется в плагине Document для подготовки шаблоном структурированных данных, вставляемых в дальнейшем в шаблоны документов PDF либо DOCX/ODT.

Ссылки:

 

 

 

 

Документация BGCRM 3.0