Bonjour,

J'ai un petit soucis dans l'affichage de mes messages, qui ne fonctionne pas dans les requêtes http (mais bien en ajax).

J'utilise le code suivant en entête de mes pages :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<h:form id="messages">
     <rich:messages errorClass="error" warnClass="warn" infoClass="info" globalOnly="true"/>
</h:form>
Je remplis mes messages en utilisant le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public static void notice(String message){
     getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,message,null));
}
public static void error(String message){
     getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,message,null));
}
Lorsque je lie cet appel à une action ajax, tout fonctionne à merveille :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a4j:commandButton value="delete" actionListener="#{userListFace.deleteAction}" reRender="UserList"/>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public void deleteAction(ActionEvent event){
    try{
        userManager.delete(getUserListItem());
        FacesUtil.notice("Success");
    } catch(DataIntegrityViolationException e){
        FacesUtil.error(e.getMessage());
    }
}
Mais lorsque je l'utilise via une action HTML, je ne vois aucun message sur la page :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a4j:commandButton value="save" action="#{userFace.saveAction}" />
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public String saveAction(){
    userManager.save(user);
    FacesUtil.notice("Modifications enregistrées");
    return "save";
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<navigation-rule>
     <from-view-id>/pages/user.jspx</from-view-id>
     <navigation-case>
        <from-outcome>save</from-outcome>
        <to-view-id>/pages/user.jspx</to-view-id>
        <redirect/>
     </navigation-case>
    ...
</navigation-rule>
Quelqu'un aurait-il une idée de ce qui cloche, et de comment je pourrais faire alors passer mon message d'une page à l'autre?