Over a million developers have joined DZone.

Injecting Guice managed object into JSF View Scoped bean

DZone's Guide to

Injecting Guice managed object into JSF View Scoped bean

· Java Zone ·
Free Resource

Build vs Buy a Data Quality Solution: Which is Best for You? Gain insights on a hybrid approach. Download white paper now!

In previous post, I demonstrate how to integrate JSF with Guice and MyBatis. However, my friend experiences some problem when he is using view scoped backing bean.
He found that he cannot re-inject the service class after serialization. I have done some tricks to solve this problem.This is simply done by overriding the readObject() and writeObject() method.

The BasePageBean in the previous post is changed as follow:


package org.borislam.view;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
import javax.servlet.ServletContext;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.ppstation.PpContext;
public abstract class BasePageBean  implements Serializable{
   private transient Injector injector;
   public BasePageBean() {}
   public Injector getInjector() {
     if(injector == null) {
       ServletContext servletContext = (ServletContext)FacesContext.getCurrentInstance().
       injector = (Injector)servletContext.getAttribute(Injector.class.getName()); 
     return injector;
   public void setInjector(Injector injector) {
     this.injector = injector;
   public void init() {
   private void writeObject(ObjectOutputStream stream) throws IOException {
      System.out.println("write object...");
   private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException {
      System.out.println("read object...");
   public  Flash flashScope (){
   return (FacesContext.getCurrentInstance().getExternalContext().getFlash());

Build vs Buy a Data Quality Solution: Which is Best for You? Maintaining high quality data is essential for operational efficiency, meaningful analytics and good long-term customer relationships. But, when dealing with multiple sources of data, data quality becomes complex, so you need to know when you should build a custom data quality tools effort over canned solutions. Download our whitepaper for more insights into a hybrid approach.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}