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 :
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 :
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 :
<a4j:commandButton value="delete" actionListener="#{userListFace.deleteAction}" reRender="UserList"/>
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 :
<a4j:commandButton value="save" action="#{userFace.saveAction}" />
1 2 3 4 5
| public String saveAction(){
userManager.save(user);
FacesUtil.notice("Modifications enregistrées");
return "save";
} |
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?
Partager