PrimeFaces & Spring Boot – część 2
PrimeFaces & Spring Boot – część 2
Ten wpis jest kontynuacją wpisu https://javaleader.pl/2019/06/23/primefaces-spring-boot-czesc-1/ . Aplikacja opisana w tym artykule jest bliźniacza do aplikacji z części pierwszej. Konfiguracja jednak jest znacznie uproszczona i wykorzystuje pełny potencjał Spring Boota. Niezbędne zależności i repozytoria:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <joinfaces.version>3.3.0-rc2</joinfaces.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.joinfaces</groupId> <artifactId>joinfaces-dependencies</artifactId> <version>${joinfaces.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.joinfaces</groupId> <artifactId>primefaces-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.joinfaces</groupId> <artifactId>rewrite-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>javax.enterprise</groupId> <artifactId>cdi-api</artifactId> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>all-themes</artifactId> <version>1.0.10</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version> </dependency> </dependencies> <repositories> <repository> <id>primefaces-maven-repository</id> <name>PrimeFaces Maven Repository</name> <url>http://repository.primefaces.org</url> </repository> </repositories> <build> <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory> </build>
Zamiast użycia zależności z części pierwszej do przepisywania adresów URL:
<dependency> <groupId>org.ocpsoft.rewrite</groupId> <artifactId>rewrite-servlet</artifactId> <version>3.4.1.Final</version> </dependency> <dependency> <groupId>org.ocpsoft.rewrite</groupId> <artifactId>rewrite-integration-faces</artifactId> <version>3.4.1.Final</version> </dependency> <dependency> <groupId>org.ocpsoft.rewrite</groupId> <artifactId>rewrite-config-prettyfaces</artifactId> <version>3.4.1.Final</version> </dependency>
Użyto projektu org.joinfaces który zapewnia dokładnie taką samą funkcjonalność:
<dependency> <groupId>org.joinfaces</groupId> <artifactId>rewrite-spring-boot-starter</artifactId> </dependency>
Zamiast zależności do JSF:
<dependency> <groupId>org.apache.myfaces.core</groupId> <artifactId>myfaces-impl</artifactId> <version>2.2.12</version> </dependency> <dependency> <groupId>org.apache.myfaces.core</groupId> <artifactId>myfaces-api</artifactId> <version>2.2.12</version> </dependency>
Użyto zarządzania zależnościami do biblioteki : org.joinfaces -> joinfaces-dependencies
<dependencyManagement> <dependencies> <dependency> <groupId>org.joinfaces</groupId> <artifactId>joinfaces-dependencies</artifactId> <version>${joinfaces.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement
Zamiast zależności:
<dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>6.2</version> </dependency>
Użyto autokonfiguracji:
<dependency> <groupId>org.joinfaces</groupId> <artifactId>primefaces-spring-boot-starter</artifactId> </dependency>
Co zrobić aby zmienić domyślny szablon aplikacji? Wystarczy teraz w pliku application.properties dodać tylko jeden wpis:
jsf.primefaces.theme = omega
Nie trzeba konfigurować dodatkowego Beana jak to miało miejsce w części pierwszej:
@Bean public ServletContextInitializer initializer() { return new ServletContextInitializer() { @Override public void onStartup(ServletContext servletContext) throws ServletException { servletContext.setInitParameter("primefaces.THEME", "omega"); } }; }
Pliki *.xhml powinny znaleźć się w katalogu:
./src/main/resources/META-INF/resources
Aplikacja po wejściu na http://localhost:8080/
Leave a comment