Question

J'ai un problème avec le rendu de page après la migration de WAS 6.0 + JSF 1.1 vers WAS 7.0 + JSF 1.2.Le problème principal est dans le code suivant:

<h:messages rendered="#{!webData.facesMessagesEmpty}" styleClass="messages"
showSummary="true" showDetail="false" title="Messages" layout="table" id="eMessages"
infoClass="info_with_icon" warnClass="warn_with_icon" errorClass="error_with_icon"
fatalClass="fatal_with_icon" />

Ce code fonctionne correctement sous WAS 6.0 + JSF 1.1 mais n'utilise pas de styles sous WAS 7.0 + JSF 1.2.J'ai fait une petite enquête et j'ai trouvé que ce problème concerne uniquement layout="table".Si j'utilise layout="list", les styles sont corrects.Malheureusement, j'ai besoin d'un tableau ici (parce que layout="list" crée un retrait, et je ne sais pas comment éviter cela).J'ai également constaté que le code HTML généré dans le cas de layout="table" est très différent pour JSF 1.1 et JSF 1.2.

Donc ma question - est-il possible de forcer la génération HTML à l'ancienne (JSF 1.1) pour WAS 7.0 + JSF 1.2?J'ai essayé de le rechercher sur Google, mais je ne trouve pas de réponse ...

Était-ce utile?

La solution

En un mot, JSF 1.1 placera le infoClass et les consorts sur un <span> à l'intérieur du <td>, mais JSF 1.2 le placera sur le <tr>.

Il semble que vous utilisiez des propriétés CSS très spécifiques qui ne sont pas prises en charge sur l'élément <tr>.Dans ce cas, vous avez essentiellement 2 options:

  1. Modifiez la déclaration CSS pour l'appliquer à la place sur <td>.

    .info_with_icon_messages td {
        /* ... */
    }
    
  2. Changez la disposition <h:messages> en un list et ajoutez les propriétés CSS suivantes sur la classe du <ul> généré, dans votre cas .messages, pour supprimer les puces et mettre en retrait:

    .messages {
        list-style-type: none;
        margin: 0; 
        /* ... */
    }
    
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top