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

Your email address will not be published.


*