tags:

views:

25

answers:

1

Is it possible to have a managed bean created only on some pages i.e. bean != null on page1.faces and bean == null on other pages?

A: 

No, it is not possible to limit the accessibility of a managed bean under JSF to an specific page. Just use it in those pages that, according to your desing, you consider appropiate.

It is common to have a JSF application that uses a given managed bean for some pages in particular, especially form beans. For example if you have a form used to create and/or update certain type of entities in your application, lets say a product definition, you will find yourself declaring code like the following:

<managed-bean>
  <managed-bean-name>productForm</managed-bean-name>
  <managed-bean-class>com.example.forms.ProductForm</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
  <managed-property>
    <property-name>someProperty</property-name>
    <value>propertyValue</value>
  </managed-property>
</managed-bean>

And then reusing it in your actual viewProduct.jsp like the following

Product Name: <h:inputText value="#{productForm.productName}" styleClass="someClass"/>

Managed beans are a core component in the JSF development process. There is much more to managed beans than just initializing certain properties and helping tie your presentation to your models.To gain a better understanding of the rationale and philosophy, including IoC, behind the use of managed beans see: http://www.oracle.com/technology/tech/java/newsletter/articles/jsf_pojo/index.html

StudiousJoseph