HTML and CSS Reference
In-Depth Information
Listing 2-5.
The @PostConstruct and the @ PostDestroy Annotations
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class User implements Serializable {
@ManagedProperty(value="anonymous")
private String name;
private String password;
// The setters and the getters ...
@PostConstruct
private void initialize() {
System.out.println("Bean is initialized with the following user name: " + name);
}
@PreDestroy
private void cleanUp() {
System.out.println("You can do the cleanup here");
}
}
The
@PostConstruct
method is called when the
User
managed bean is instantiated and initialized. This means
that the output console will show the following message when the
initialize
method is called:
"Bean is initialized with the following user name: anonymous"
■
as you notice, the
@PostConstruct
and the
@PreDestroy
methods return types are
void
and take no
arguments. the methods can also be
private
,
public
,
protected
, or
package
.
Note
The
@PreDestroy
method is called before the
User
managed bean is destroyed. In this method, you can put the
required cleanup and de-initialization code of the managed bean.
There are also many other Java EE annotations that are related to the data access and can be used perfectly with
the JSF managed beans, such as
@Resource
,
@PersistenceUnit
,
@PersistenceContext
,
@EJB
, and
@WebServiceRef
.
We will cover most of these annotations in the next chapters.
Adding to the ability of initializing simple attributes, you can also initialize the managed bean complex types
such as lists and maps. Listing 2-6 introduces two new properties to the
User
managed bean: the
favoriteSports
List
and
spokenLanguages
Map.
