# Spring MVC - JSF 2.0 Integration



## Tarantoga (15. Jul 2011)

Hey Leute!
Ich hätte eine Frage bezüglich der Integration von JSF 2.0 mit Spring MVC.
Einige Features von JSF sind doch sehr überzeugend und daher würde ich dieses Framework gerne für meine Views verwenden.
Mein erstes Problem ist ja folgendes: 

Spring MVC ist ja wie der Name schon sagt ein MVC Framework. Nach meinem Verständnis hat auch JSF eine MVC Architektur. Im Gegensatz dazu wäre ja zb. JSP eine reine View Technologie, die ja auch standardmäßig bei Spring MVC Projekten verwendet wird.
Bitte korrigiert mich, wenn ich falsch liege.

Ich würde gerne JSF in meinen Views verwenden, bzw. damit auch auf meine "ManagedBeans" zugreifen.
Wobei ich mir da nicht sicher bin, denn dann wäre es ja wieder keine reine View Technologie mehr, oder?

Ich habe versucht das gesamte JSF Framework hinzuzufügen, aber es gab einige Fehler. Es fängt ja damit an, dass ich nicht ganz weiß wie ich das Faces-Servlet mappen soll.
Momentan sind meine Views ja in WEB_INF mit der Endung .jsp und werden nur von Spring Controllern gehandelt.

Meine Ziel wäre es in diesen Spring MVC Views, die gesamte JSF Funktionalität nutzen zu können.
Dabei sollte es möglich sein JSF in ein bestehendes Spring MVC Projekt (das sich auf JSP Technologie stützt) einbetten zu können ohne gravierende Änderungen vornehmen zu können.  

Viele liebe Grüße,
Tarantoga


----------



## nocturne (27. Jul 2011)

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‬&rlm; - 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]


----------



## Tarantoga (1. Aug 2011)

Dankeschön, 
habe mir auch das Video angesehen.
Ich bin natürlich noch nicht so wirklich in der Denke von JSF drinnen, aber primär wollte ich die Unterschiede wissen, weil ich Spring Security damit verwenden will.
Zuvor habe ich eben Spring MVC benutzt und da funktionierte alles einwandfrei.
Daher vermute ich irgendwelche Unterschiede in der Art und Weise wie JSF Anfragen verarbeitete, an denen sich Spring Security stößt.

Dazu habe ich auch einen eigenen Thread eröffnet.
http://www.java-forum.org/web-tier/122339-jsf-spring-security-integration.html

Danke dir nochmals,
Tarantoga


----------

