Also manche nehmen JSP für Controller und View.
Ein grundlegender Unterschied zwischen JSF und SpringMVC/Struts ist die Verbindung zwischen Controller(deine ManagedBeans) und View.
JSF unterscheided idR. nicht zwischen ManagedBean und CommandBean.
Struts allerdings kann eben mit CommandBeans besser skalliert werden.
Allgemein:
JSF-Seiten sind erstmal inkompatibel zu JSP. (Bitte lade dir die JBossTools JSF -Plugins runter)
Die Endung für JSF ist üblicherweise xhtml oder jspx.
Wenn du mit JBoss arbeitest hast du die JSF1-Libs schon dabei (server\default\deploy\jboss-web.deployer\jsf-libs).
Du must in der Web.xml-Datei schreiben:
[XML]<listener>
<listener-class>com.sun.faces.config.ConfigureListener
</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.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>[/XML]
So werden .jsf-URL's mit dem Faces-Servlet verarbeitet.
(Ich habe auch ein Video-Tutorial dazu gebastelt Kanal von 3n3xus‏ - YouTube)
eine Facelets-datei sieht dann so aus:
(index.xhtml)
[XML]<!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://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head></h:head>
<body>
</body>
</html>
[/XML]