2017-09-06 4 views
0

J'ai une page JSF où l'utilisateur entre plusieurs informations. Lorsque l'utilisateur soumet les données, il est d'abord validé et si la soumission est réussie, l'utilisateur doit également obtenir un FacesMessage.XSP JSF FacesContext addMessage ne fonctionne pas toujours

J'ai un contrôle personnalisé pour une barre de menu que j'utilise dans chaque page:

<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom"> 
    <xp:panel> 
     <xp:this.facets> 
      <!-- Some Logos and stuff --> 
       <xp:panel xp:key="contentFacet"> 
        <xp:callback facetName="contentContainer"></xp:callback> 
       </xp:panel> 
     </xp:this.facets> 
    </xp:panel> 
</xp:view> 

Le menu est ensuite utilisé de la manière suivante:

<xc:cc_layout_main><xp:this.facets> 
    <xp:panel xp:key="contentContainer"> 
     <xc:cc_content_form></xc:cc_content_form></xp:panel> 
    </xp:this.facets></xc:cc_layout_main> 

Le cc_content_form utilise ce contrôle:

<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:messages id="messages1" styleClass="test" layout="table" 
     errorClass="alert-warning" fatalClass="alert-danger" 
     infoClass="alert-info" warnClass="alert-warning" showDetail="true" 
     showSummary="true" disableTheme="false" globalOnly="false"> 
    </xp:messages> 

    <xp:scriptBlock id="scriptBlock1"> 
     <xp:this.value><![CDATA[ 
// Validierungs Nachrichten entfernen 
var delayMs = 750; 
$('body') 
    .on('click', function(event){ 
     x$('#{id:messages1}').delay(delayMs).fadeOut(500); 
    }) 
    .on('keyup', function(event){ 
     x$('#{id:messages1}').delay(delayMs).fadeOut(500);   
    }) 
]]></xp:this.value> 
    </xp:scriptBlock> 

</xp:view> 

Dans la fonction submit je l'utilise dans la fonction de validation:Cet appel est enveloppé dans une méthode de classe auxiliaire avec un motif singletone afin qu'il puisse être utilisé à partir de toutes les pages. Pour les messages de validation, cela fonctionne très bien, mais plus bas dans la méthode valdiation avant que je retourne l'actionResult "xsp-success" cela ne fonctionne pas. Aucun message n'apparaît, je ne reçois aucune exception.

Quelqu'un peut-il aider à ce sujet?

Répondre

0

Il s'avère que j'ai foiré les règles de navigation ... Il fonctionne très bien