Якорь | ||||
---|---|---|---|---|
|
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 помещаются:
- ссылки на объекты контекста, чаще всего различные справочники в фильтре
;Crm_javadoc Name ru.bgcrm.servlet.filter.SetRequestParamsFilter - объект с параметрами запроса
;Crm_javadoc Name ru.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 объектов
Хотелось бы особо отметить следующую возможность. Создание произвольного Java объекта, использование параметризованного конструктора, что не позволяет стандартный тег <bean>. Данный подход позволяет существенно уменьшить использование скриплетов (вставок Java кода).
Блок кода | ||
---|---|---|
| ||
<u:newInstance var="paramDao" clazz="ru.bgcrm.dao.ParamValueDAO">
<u:param value="${conSlave}"/>
</u:newInstance> |
Изменение данных в Request
Шаблон может менять объекты в Request. Этот немного нестандартный метод используется в плагине Document для подготовки шаблоном структурированных данных, вставляемых в дальнейшем в шаблоны документов PDF либо DOCX/ODT.