code: @Override
  	public void decode(FacesContext context, UIComponent component) {
  		TabView tabView = (TabView) component;
  
  		decodeBehaviors(context, tabView);
  
  		String clientId = tabView.getClientId(context);
  		String activeIndexId = clientId.replace(":", "_") + "_activeIndex";
  		String activeIndexValue = (String) context.getExternalContext().getRequestParameterMap().get(activeIndexId);
  
  		new AJAXRenderer().decode(context, component);
  		if (null != activeIndexValue && activeIndexValue.length() > 0) {
  			try {
  				if (Integer.valueOf(activeIndexValue) != tabView.getActiveIndex()) {
  					tabView.setActiveIndex(Integer.valueOf(activeIndexValue));
  				}
  			} catch (NumberFormatException e) {
  
  			}
  		}
  	}
docs: Decode to be used to implement an AJAX version of TabView. This methods
  receives and processes input made by the user. More specifically, it
  ckecks whether the user has interacted with the current b:tabView. The
  default implementation simply stores the input value in the list of
  submitted values. If the validation checks are passed, the values in the
  <code>submittedValues</code> list are store in the backend bean.
  
  @param context
  the FacesContext.
  @param component
  the current b:tabView.