Около года назад для 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 . |