JSF 2 + Maven + Jetty. Подготовка

от автора

С момента последней публикации о JSF 2 вышла новая версия — JSF 2.3.0.
Это знаковое событие мотивировало на написание статьи.
В этой части мы подготовим и запустим базовое приложение на JavaServer Faces.

Подготовка

Создаем новый проект:
mvn archetype:generate -DinteractiveMode=false -DgroupId=lan.net -DartifactId=habr
Переходим в папку habr.
Удаляем содержимое папок ./src/main/java и ./src/test/java.
Приводим ./pom.xml к следующему виду:

<project xmlns="http://maven.apache.org/POM/4.0.0"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">      <modelVersion>4.0.0</modelVersion>      <!-- Меняем jar на war -->     <packaging>war</packaging>      <groupId>lan.net</groupId>     <artifactId>habr</artifactId>     <version>1.0-SNAPSHOT</version>      <name>habr</name>     <url>http://maven.apache.org</url>      <dependencies>         <!-- Определяем API реализованные Jetty. -->         <!-- http://www.eclipse.org/jetty/documentation/current/what-jetty-version.html -->         <dependency>             <groupId>javax.servlet</groupId>             <artifactId>javax.servlet-api</artifactId>             <version>3.1.0</version>             <scope>provided</scope>         </dependency>         <dependency>             <groupId>javax.servlet.jsp</groupId>             <artifactId>javax.servlet.jsp-api</artifactId>             <version>2.3.1</version>             <scope>provided</scope>         </dependency>         <!-- Реализация JavaServer Faces 2.3.0 -->         <dependency>             <groupId>org.glassfish</groupId>             <artifactId>javax.faces</artifactId>             <version>2.3.0</version>         </dependency>     </dependencies>      <build>         <plugins>             <!-- Плагин для запуска проекта. -->             <!-- http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html -->             <plugin>                 <groupId>org.eclipse.jetty</groupId>                 <artifactId>jetty-maven-plugin</artifactId>                 <version>9.4.5.v20170502</version>             </plugin>         </plugins>     </build>  </project> 

Создаем папки ./src/main/webapp и ./src/main/webapp/WEB-INF.
В папке ./src/main/webapp/WEB-INF создаем файл web.xml:

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"          version="3.1">     <!-- Очевидно. -->     <welcome-file-list>         <welcome-file>index.xhtml</welcome-file>     </welcome-file-list> </web-app> 

В папке ./src/main/webapp создаем файл index.xhtml:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml"       xmlns:h="http://xmlns.jcp.org/jsf/html">  <h:head>     <title>Title</title> </h:head>  <h:body>     <p>Session ID: <h:outputText value="#{session.id}"/></p> </h:body>  </html> 

Запускаем: mvn jetty:run
Проверяем: http://127.0.0.1:8080/

Послесловие

  • На странице отображается ID текущей сессии.
  • Проект не содержит в себе кода на Java.
  • jUnit удален намеренно.

Продолжение следует…
ссылка на оригинал статьи https://habrahabr.ru/post/329240/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *