Статьи

JSF в сравнении с JSP, какой из них подходит для ваших приложений CRUD? (Часть 2)


В каждом плане проекта есть этап, когда функциональные задачи экстраполируются на требования заказчика.
Эти задачи составят структуру плана реализации проекта. На практике, чем больше у вас возможностей для определения задач и выполняемой ими работы, тем лучше вы сможете следовать графику проекта.

Приложения CRUD (Create Read Update Delete) высоко востребованы клиентами и обычно требуют таких функций адресации, как:

    • Простая обработка вставки / обновления / удаления записей (как их именования состояний)
    •  Система контроля привилегий, ролевая.
    • Подтверждение ввода
    • Средства для поддержки обработки стандартного набора взаимосвязей сущностей: один ко многим, многие ко многим.
    •  интернационализация
    • Обеспечить быстрый ответ после отправки запроса и т. Д.

Этап 1 — настройка среды разработки

Эта фаза является общей для обоих проектов, и различаются только зависимости, включенные в файлы MAVEN pom.

  • Зарегистрируйте сервер разработки в IDE
  • Создайте веб-проект Maven в IDE
  • Запустите веб-проект из IDE (протестируйте компиляцию, развертывание, запустите возможности, получите необходимые зависимости и обеспечьте совместимость между IDE, сервером и браузером)
  • Зарегистрируйте сервер базы данных в IDE (я приложил файл SQL в качестве модели данных к этой статье). Я использовал базу данных Apache Derby.
  • Установите соединение с сервером базы данных из IDE.
  • Создайте экземпляр базы данных на сервере базы данных.

Этап 2 — Подготовить модель данных

На этом этапе включены следующие действия:

  • Создайте диаграмму отношения сущностей (используйте визуальный инструмент проектирования базы данных)
    • Определить объекты
    • Создать схему
    • Создать сущности
    • Добавить свойства объекта
    •  Определить отношения между сущностями
  • Перенаправить диаграмму отношения сущностей в сценарий SQL
  • Запустите скрипт на сервере базы данных для генерации схемы

Для двух проектов Proof of Concept к этой статье уже добавлен сценарий sql Вы можете запустить этот скрипт, чтобы проверить прикрепленный код.

Этап 3 — подключить приложение к базе данных

  • Добавить пример данных в базу данных (вставка из прикрепленного sql)
  • Создать источник данных и пул соединений на сервере
  • Источник тестовых данных (пул соединений ping)
  • Убедитесь, что представления могут получить доступ к данным из базы данных (если какие-либо представления определены)
  • Установите все необходимые параметры приложения

Этап 4 — Разработка бизнес-логики

Проект CRUDwithJSF2.2

CRUDwJJ проект

Создание сущностей из таблиц базы данных.

  • com.tutorial.crudwithjsf2.entities.Department
  • com.tutorial.crudwithjsf2.entities.Employee

Внимание:

1. не забудьте добавить свои сущности в persistence.xml

2. даже если ваша IDE автоматически создает сопоставление, обратите внимание на сопоставление отношений OneToMany или ManyToOne

Создание объектов данных на основе таблиц базы данных.

  • com.tutorial.crudwithjsp.model.Department
  • com.tutorial.crudwithjsp.model.Employee

Создайте AbstractFacade и его дочерние элементы DeparmentFacade и EmployeeFacade. Эти 3 класса облегчат вызов изменений в базе данных.

Создайте EmployeeDAO и DepartmentDAO, которые управляют транзакциями базы данных для каждого из объектов данных. Кроме того, реализуйте соединение с базой данных с помощью класса утилит DatabaseUtil, поскольку это соединение является общим для каждого типа объектов.

Этап 5 — Создание контроллеров

Проект CRUDwithJSF2.2

CRUDwJJ проект

  • Каждый из контроллеров JSF имеет инъекцию соответствующих классов Facade.
  •  Контроллеры далее используются в пользовательском интерфейсе для размещения модели.

  • Создание сопоставлений для представлений в дескрипторе развертывания
  • Создать скелетный код в сервлете для обработки клиентских запросов

  • com.tutorial.crudwithjsf2.control.DepartmentController — это управляемый компонент с SessionScope
  • com.tutorial.crudwithjsf2.control.EmployeeController is a ManagedBean with SessionScope

  • com.tutorial.crudwithjsp.controller.DepartmentController extends a HttpServlet
  • com.tutorial.crudwithjsp.controller.EmployeeController extends a HttpServlet


Stage 6 —  Organize the application front-end

CRUDwithJSF2.2 project

CRUDwithJSP project

The JSFs can be generated, using templates. I used Create template .

Place JSP pages in the application’s WEB-INF directory

Define page header and footer inside template.xhtml

Create page header and footer

When you using templates there is little chance of code duplication.

Remove instances of code duplication (header and footer code from JSP pages)

By using templates it is much easier to customize the style of the application and offer an uniform look to it.

Unfortunatelly, for pure JSPs the UI customization is available by adding css files as for any other client web page.

Stage 7 — Achieve Internationalization: add language support

CRUDwithJSF2.2 project

CRUDwithJSP project

In face-config.xml define your properties file that contains the labels. Place the Bundle under resources area of the web application.

<application>

  <resource-bundle>

  <base-name>/Bundle</base-name>

  <var>bundle</var>

  </resource-bundle>

  </application>

Place the localization file in web.xml and define it under WEB-INF folder in order to access it easily.

<context-param>

  <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>

  <param-value>lang</param-value>

  </context-param>

Learn