İpucu

Tomcat 10 ile JSF 3.0 ile Web Projesi

Tomcat 10, Jakarta 9 desteklemektedir. Jakarta 9 için JSF 3.0 kullanılmaktadır.
Tomcat 10 üzerinde JSF 3.0 projesi yapıyoruz. Öncelikle pom.xml'e aşağıdaki bağımlılıklar eklenir:
<dependency>
	<groupId>jakarta.faces</groupId>
	<artifactId>jakarta.faces-api</artifactId>
	<version>3.0.0</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>org.glassfish</groupId>
	<artifactId>jakarta.faces</artifactId>
	<version>3.0.1</version>
</dependency>
<dependency>
	<groupId>jakarta.servlet</groupId>
	<artifactId>jakarta.servlet-api</artifactId>
	<version>5.0.0</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>jakarta.servlet.jsp</groupId>
	<artifactId>jakarta.servlet.jsp-api</artifactId>
	<version>3.0.0</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>jakarta.el</groupId>
	<artifactId>jakarta.el-api</artifactId>
	<version>4.0.0</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>org.jboss.weld.servlet</groupId>
	<artifactId>weld-servlet-shaded</artifactId>
	<version>4.0.0.Final</version>
</dependency>
Tomcat 9, Jakarta EE 9'u desteklemektedir. Bu nedenle Jakarta kullanılmaktadır. Weld kütüphanesi CDI için eklenmektedir. CDI için META-INF klasörü altında context.xml eklenir:
<Context>
    <Resource name="BeanManager" 
        auth="Container"
        type="jakarta.enterprise.inject.spi.BeanManager"
        factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>
Ardından WEB-INF altına boş bir beans.xml dosyası konulur:
<beans 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/beans_3_0.xsd"
       bean-discovery-mode="all">
</beans>
Web.xml aşağıdaki gibi olsun :
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	id="WebApp_ID" version="4.0">
	<display-name>web</display-name>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>
</web-app>
faces-config.xml ise aşağıdaki gibidir :
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    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-facesconfig_3_0.xsd"
    version="3.0">
</faces-config>
Artık bir Bean yaratabiliriz :
package com.test;
import jakarta.inject.Named;
@Named
public class HelloBean {
	
	  private String message="Merhaba JSF 3.0";
	   
	  public String getMessage() {
	    return message;
	  }
	  public void setMessage(String message) {
	    this.message = message;
	  }
}
Bu bean'i kullanan bir sayfa yapalım :
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Hello JSF 3.0</title>
    </h:head>
    <h:body>
        <h1>#{helloBean.message}</h1>
    </h:body>
</html> 

Tomcat 10'da bu proje deploy edilip çalıştırıldığında ekranda Merhaba JSF 3.0 yazısı görülecektir.
Proje kodlarına buradan ulaşabilirsiniz : Proje Kodları İçin
zafer.teker , 26.08.2021

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir