Using Spring with JSF – the managed bean – tutorial
source link: https://marco.dev/2009/03/06/spring-jsf-tutorial/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
java-version.com: What's new in Java 16? 15? Keep up to date!
Using Spring with JSF – the managed bean – tutorial
Two J2EE technologies are becoming dominant in the Java environment: Spring and Java ServerFaces.
Spring beans could be easily integrated in a JSF project. Spring Beans can coexists with JSF managed beans or interact directly with the view.
The steps necessary to use Spring in a JSF projects are the following:
Libraries
Spring libraries must be accessible 🙂
web.xml
In web.xml you have to declare your spring listener:
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
To use the request values between the view (jsp/jsf) ad the bean you have to add a second listener:
<listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener>
faces-config.xml
In faces-config.xml usually you define the managed beans. To use spring beans you have to add the following lines:
<application> <variable-resolver> org.springframework.web.jsf.DelegatingVariableResolver </variable-resolver><code> </application>
applicationContext.xml
In the applicationContext.xml you have to declare your beans like a standard Spring application, the only difference is the property scope:
<bean name ="personMB" class="ch.genidea.ofac.web.jsf.Person" <strong>scope="request"</strong>> <property name= ... /> </bean>
Usually the scope property is set as singleton (default). For the web application you have 3 possibilities:
- request: Scopes a single bean definition to the lifecycle of a single HTTP request; that is each and every HTTP request will have its own instance of a bean created off the back of a single bean definition.
- session: Scopes a single bean definition to the lifecycle of a HTTP Session.
- global session: Scopes a single bean definition to the lifecycle of a global HTTP Session. Typically only valid when used in a portlet context.
page.jsp
In your page you can call the bean directly :
<h:outputText value="First name"/> <h:inputText value="#{personMB.firstName}" id="personName"/> <h:outputText value="Family name"/> <h:inputText value="#{personMB.lastName}" id="personFamilyName"/>
Author
Marco Molteni
Marco Molteni Blog
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK