March 27, 2008

Frühlingsgesichter - JSF und Spring

Spring-Beans lassen sich leicht in JSF-Seiten verwenden.

Im folgenden Beispiel soll der customerController nicht als normale Managed Bean sondern als Spring-Bean definiert werden:
<h:inputText value="#{customerController.name}"/>
1. spring.jar

Kopieren in den Ordner WEB-INF/lib

2. web.xml

In der web.xml den Pfad zur Spring-Konfiguration festlegen, beispielsweise:
<web-app>
   <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:config/applicationContext.xml</param-value>
   </context-param>

  <listener>
     <listener-class>
        org.springframework.web.context.ContextLoaderListener
     </listener-class>
  </listener>

  (...)

</web-app>

3. faces-config.xml

Der DelegatingVariableResolver dient zur Auflösung der in den JSF-Seiten benutzten Beans:
<faces-config>
  <application>
     <variable-resolver>
        org.springframework.web.jsf.DelegatingVariableResolver
     </variable-resolver>
  </application>

  (...)

</faces-config>

4. Beans für den Application Context

Die JSF-eigene Definition als Managed Bean entfällt - stattdessen wird eine Spring-Bean konfiguriert:
<beans (...) >

 (...)

 <bean id="customerController"
      class="whatever.package.CustomerController"
      scope="request">
  </bean>

</beans>

No comments:

Post a Comment