JBoss RichFaces with Spring
Installing Spring
For the purpose of this example, Spring is installed and configured as follows.
The following JAR files are added to the application:
- spring-beans.jar
- spring-context.jar
- spring-core.jar
- spring-web.jar
- slf4-api-1.5.5.jar
- slf4-simple-1.5.5.jar
Registering Spring in web.xml
Add the following to web.xml file:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-beans.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
The contextConfigLocation parameter specifies a Spring beans configuration file where Spring beans are going to be defined and managed. It looks (when almost empty) like this:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
</beans>
We will be adding more stuff as we go. For now we only have <context:annotation-config>. This tag enables support for Java EE 5 annotations such as @PostConstruct, @PreDestory, and @Resource.
JSF Configuration File
As we are going to use Spring beans, we want Spring to resolve the beans and thus need to register Spring's EL resolver in a JSF configuration file:
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
That's all the configuration you need to use RichFaces and Spring.
| Attachment | Size |
|---|---|
| richfaces-spring-wizard.zip | 11.15 MB |
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Aleksandar Vidakovic replied on Mon, 2009/02/16 - 6:04pm
Salut Max,
interesting article. I've been experimenting with Richfaces and Spring for a while and would be extremely interested in the SpringWebflow integration...
Cheers,
Aleks
Frederic Chopard replied on Tue, 2009/02/17 - 9:57am
Hello Max,
I'm trying to build my richbar application but when I click on the next button of the first wizard page, nothing happens. So I'd like to check your project but I can't find any link in your article. Where can I download your project files ?
Thanks !
Wis
Nitin Bharti replied on Tue, 2009/02/17 - 10:19am
in response to:
Frederic Chopard
Hi Wis,
I believe you can download the project template from here -- http://drop.io/usoalrd
I will add this to the main article as well. Sorry about that.
Thanks,
Nitin
Gene De Lisa replied on Wed, 2009/02/25 - 9:08am
"In the “real” world, you would probably use Maven 2, but, to keep things simple and concentrate on RichFaces and Spring, we are going to use a ready-made project."
maven projects are "ready-made" and they don't have the disadvantages of the approach you have taken.
Other than that this is nothing more a mediocre do this do that tutorial.
Omar Palomino S... replied on Sun, 2009/03/08 - 10:28pm
in response to:
Aleksandar Vidakovic
Hi Max and Aleksandar,
I'm also interesting in Spring Webflow integration [navigation rules are cumbersome :s]. I have a couple of implementations with both RichFaces, Spring and Jpa, and it's fun and easy to develop this way. Webflow would be a nice addition to this project acthitecture.
Tao Dong replied on Fri, 2009/03/13 - 2:34pm
Excellent Article. In case someone want to try it through Maven. Hope the following dependecy setting will save you some time.
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui</artifactId>
<version>3.3.0.GA</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-api</artifactId>
<version>3.3.0.GA</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl</artifactId>
<version>3.3.0.GA</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.richfaces.samples</groupId>
<artifactId>laguna</artifactId>
<version>3.3.0.GA</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<scope>compile</scope>
</dependency>
<!-- JBoss RichFaces Repository -->
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
<id>repository.jboss.com</id>
<name>Jboss Repository for Maven</name>
<url>
http://repository.jboss.com/maven2/
</url>
<layout>default</layout>
</repository>
Max Katz replied on Mon, 2009/03/16 - 10:53am
in response to:
Tao Dong
ben salem replied on Tue, 2009/03/17 - 6:44pm
First, thanks for the great work :)
but
<cite> (Note - The Project Template for this article can be downloaded from http://drop.io/usoalrd) </cite>
what is the pass for download ?
thanks in advance!
Anderson Santos replied on Wed, 2009/03/18 - 9:28am
Hi Buddy,
This article is just great, I have been looking for a steb by step like this one, for at least a month.
I just couldn't download the template for this project, could you please send it by e-mail to me, that link where you say to click for download is broken and the one in the first page os this article, I just couldn't use...
thanks,
Anderson
ander.dev@gmail.com
Jean Chastain replied on Wed, 2009/03/18 - 4:27pm
sam set replied on Sat, 2009/03/21 - 12:01pm
in response to:
Jean Chastain
hi, it's been quite some time i am trying to make richfaces 3.3 work with spring 2.0 webflow. Can somebody tell me how to download the source code. I visited http://drop.io/usoalrd, it's asking for password. What am i suppose to enter there ?
or, can you send me through email ?
Appreciate your help!
Aseem Monga replied on Tue, 2009/03/31 - 7:59am
Juan Gonzales replied on Wed, 2009/04/01 - 7:03pm
thanks
juanjogoa24@gmail.com
.
Max Katz replied on Sat, 2009/04/11 - 11:47am
Davut Uysal replied on Fri, 2009/04/17 - 9:48am
shantanu banerjee replied on Sat, 2009/04/25 - 1:36am
Donovan Makund replied on Sun, 2009/04/26 - 3:11pm
in response to:
Max Katz
shantanu banerjee replied on Thu, 2009/04/30 - 1:57am
Max Katz replied on Tue, 2009/05/05 - 1:45pm
Let's try this file. Here is what you need to do:
Download the template.
In Eclipse:
shantanu banerjee replied on Thu, 2009/05/07 - 8:08am
Max Katz replied on Tue, 2009/05/19 - 6:05pm
in response to:
shantanu banerjee
Donovan Makund replied on Sat, 2009/06/06 - 11:48am
Max Katz replied on Fri, 2009/06/12 - 11:18am
in response to:
Donovan Makund
Mohsin Khan replied on Tue, 2009/06/16 - 2:30pm
Martin Haas replied on Mon, 2009/06/22 - 5:50am
Max Katz replied on Mon, 2009/06/22 - 3:26pm
in response to:
Mohsin Khan
Max Katz replied on Mon, 2009/06/22 - 3:29pm
in response to:
Martin Haas
stu bilton replied on Thu, 2009/07/16 - 10:26am
Hi Max,
Firstly thanks for this article it's good to have a straigthforward example of using these frameworks together.
I do have a problem running this on a was 6.1 instance. (However I don't think this is the issue here). I've placed the code into an existing webb app project to prove the spring framework can run in an existing richfaces / facelets implementation
My stack trace on requesting http://localhost:9080/MyProjectName/start.jsf is as follows
Do you have any idea why I'm getting a NotSerializeableException thrown when trying to instantiate this bean? (presumeably through Spring DI ?(I'm a newbie when it comes to jsf and spring))
Thanks
Stuart
Max Katz replied on Thu, 2009/07/16 - 10:47am
stu bilton replied on Thu, 2009/07/16 - 11:00am
in response to:
Max Katz
Thanks Max.
I thought that might (and did) do the trick. As a newbie just wondered if the stack trace might shed any light on why the exception was throwing.
Keep the articles coming . Thanks again
Stuart