How to add a message to a specific component from JSF backing bean

后端 未结 2 1086
盖世英雄少女心
盖世英雄少女心 2020-12-28 16:44

I have an h:inputText and an h:message connected to it:



    <         


        
2条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-28 17:29

    You need to provide the so called client id, which you'll find on UIComponent.

    The following is a quick example of how to use this.

    Consider the following bean:

    @ManagedBean
    @RequestScoped
    public class ComponentMsgBean {
    
        private UIComponent component;
    
        public UIComponent getComponent() {
            return component;
        }
    
        public void setComponent(UIComponent component) {
            this.component = component;
        }
    
        public String doAction() {
    
            FacesContext context = FacesContext.getCurrentInstance();
    
            context.addMessage(component.getClientId(), new FacesMessage("Test msg"));
    
            return "";
        }
    
    }
    

    being used on the following Facelet:

    
    
        
    
            
                
                
    
                
            
    
        
    
    

    This will add a Faces message with content "Test msg" for the outputText component used in the example.

提交回复
热议问题