Около года назад для Java EE 8 была анонсирована новая среда MVC, основанная на действии, называемая просто MVC. MVC (указанный в JSR 371 ) основан на JAX-RS и интегрируется с технологиями Java EE, такими как CDI и Bean Validation. Эталонной реализацией для MVC 1.0 является Ozark .
Это первая статья из нескольких частей, которую я планирую написать о Java EE MVC. В этой статье мы увидим, как получить базовое приложение Java EE MVC, работающее с Ozark. Предстоящие статьи предоставят больше деталей к определенным разделам.
Начало работы с Озарком
Обратите внимание, что спецификация MVC все еще находится на ранней стадии разработки, окончательная спецификация планируется выпустить в третьем квартале 2016 года. Чтобы взглянуть на Java EE MVC в этом раннем состоянии, нам нужна последняя версия GlassFish для текущей ночной сборки и текущий Ozark. выпуск вехой. Команда Ozark рекомендует GlassFish B13 03-16-2015 для текущей версии Ozark.
Помимо GlassFish нам нужны следующие зависимости для создания приложения MVC:
01
02
03
04
05
06
07
08
09
10
11
12
13
|
< dependencies > < dependency > < groupId >com.oracle.ozark</ groupId > < artifactId >ozark</ artifactId > < version >1.0.0-m01</ version > < scope >compile</ scope > </ dependency > < dependency > < groupId >javax</ groupId > < artifactId >javaee-api</ artifactId > < version >7.0</ version > </ dependency > </ dependencies > |
Как упоминалось выше, Java EE MVC основан на JAX-RS. Так что все может показаться вам очень знакомым, если вы уже знаете о JAX-RS.
Для создания нашего приложения MVC нам сначала понадобится класс приложения JAX-RS:
1
2
3
4
|
@ApplicationPath ( "getting-started" ) public class GettingStartedApplication extends Application { } |
Этот подкласс javax.ws.rs.core.Application может использоваться для определения дополнительных компонентов JAX-RS. В этом примере нам не нужны никакие специальные настройки, поэтому класс может оставаться пустым. С помощью @ApplicationPath мы определяем базовый путь для нашего приложения.
Создание контроллера
Контролер отвечает за обработку входящих запросов. На основе входящего запроса он выполняет бизнес-логику, обновляет модель и возвращает представление, которое должно быть отображено. Простой Java EE MVC Controller выглядит следующим образом:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
@Controller @Path ( "hello" ) public class HelloController { @Inject Models models; @GET public String sayHello( @QueryParam ( "name" ) String name) { String message = "Hello " + name; models.put( "message" , message); return "/WEB-INF/jsp/hello.jsp" ; } } |
Класс Controller аннотирован @Controller и @Path. Это указывает на то, что класс является контроллером Java EE MVC, который прослушивает запросы в / Getting-Start / Hello.
С CDI экземпляр Models вводится в контроллер. Класс Models представляет модель MVC. Он заполняется данными контроллером и затем передается в представление. Models — это в основном Map <String, Object>, которая может содержать произвольные данные.
Метод sayHello () обрабатывает входящие HTTP-запросы GET (обозначается @GET). С @QueryParam параметры запроса могут быть связаны с параметрами метода. Внутри sayHello () имя параметра запроса используется для создания текстового сообщения, которое затем добавляется в модель. Возвращаемая строка определяет путь к представлению, которое должно быть отображено.
Создание представления
Представления в приложениях Java EE MVC обычно представляют собой HTML-страницы с файлами CSS и JavaScript. В этом примере наше представление представляет собой простой файл JSP, расположенный по адресу /WEB-INF/jsp/hello.jsp
01
02
03
04
05
06
07
08
09
10
11
|
<%@page contentType="text/html" pageEncoding="UTF-8"%> <! DOCTYPE html> < html > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > < title >Getting started</ title > </ head > < body > < h1 >${message}</ h1 > </ body > </ html > |
Внутри файлов JSP свойства модели доступны через EL . Здесь мы используем $ {message} для доступа к значению модели с помощью ключевого сообщения.
Спецификация Java EE MVC определяет два стандартных механизма шаблонов для представлений: JSP и Facelets. Тем не менее, другие шаблоны могут быть легко интегрированы. Мы рассмотрим интеграцию других технологий просмотра в следующем посте.
Запуск приложения
Теперь мы готовы запустить GlassFish и развернуть наше новое приложение MVC. После этого мы можем отправить запрос GET нашему контроллеру и посмотреть, что он возвращает. Не забывайте, что контроллер ожидает имя параметра.
Например, GET /getting-started/hello?name=john
приведет к HTML-странице, содержащей сообщение Hello John
.
Резюме
Java EE MVC — это новая грядущая веб-платформа Java MVC. Он использует множество существующих технологий Java, таких как JAX-RS, CDI и JSP. Сам фреймворк довольно прост и легок для понимания. Полная спецификация MVC 1.0 составляет всего около 33 страниц и очень легко читается.
Мы можем использовать текущую веховую версию эталонной реализации MVC 1.0 Ozark, чтобы получить представление о готовящейся среде Java EE 8.
- Вы можете найти полный исходный код примера приложения на GitHub .
Ссылка: | Java EE 8 MVC: начало работы с Ozark от нашего партнера по JCG Майкла Шаргага в блоге mscharhag, Programming and Stuff . |