Seam+JSF清除页面错误状态的方法

import java.util.Iterator;
import java.util.Set;

import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.component.UIForm;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ValueChangeEvent;
import javax.faces.event.ValueChangeListener;

import org.ajax4jsf.context.AjaxContext;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.contexts.Contexts;



public class StatusResetter implements ValueChangeListener{
	

	@Override
	public void processValueChange(ValueChangeEvent event)
			throws AbortProcessingException {
		 FacesContext facesContext = FacesContext.getCurrentInstance();  
         UIComponent root = facesContext.getViewRoot(); 
         clearComponentHierarchy(root);
        
    }  
      
 
    private void clearComponentHierarchy(UIComponent pComponent) {  
         if (pComponent.isRendered()) {  
              if (pComponent instanceof EditableValueHolder) {  
                   EditableValueHolder editableValueHolder = (EditableValueHolder) pComponent;  
                   editableValueHolder.setValid(true);  
              }            
              for (Iterator<UIComponent> iterator = pComponent.getFacetsAndChildren(); iterator.hasNext();) {  
                   clearComponentHierarchy(iterator.next());  
              }            
         }  
    }  
}


你可能感兴趣的:(JSF,seam)