Risultato diverso di H: messaggi dopo la migrazione da JSF 1.1 a JSF 1.2
-
28-10-2019 - |
Domanda
Ho un problema con il rendering della pagina dopo la migrazione da 6,0 + JSF 1.1 a 7,0 + JSF 1.2. Il problema principale è nel seguente codice:
<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" />
Questo codice funziona correttamente sotto era 6,0 + JSF 1.1 ma non utilizza gli stili con 7,0 + JSF 1.2. Ho fatto un po 'di indagine e ho scoperto che questo problema è solo per layout = "tabella". Se uso layout = "elenco", gli stili sono ok. Sfortunatamente ho bisogno di tabella qui (perché layout = "elenco" crea rientro e non ho come abilitare questo). Inoltre ho scoperto che il codice HTML generato in caso di layout = "tabella" è molto diverso per JSF 1.1 e JSF 1.2.
Quindi la mia domanda: è possibile forzare la generazione HTML di Old Style (JSF 1.1) per 7.0 + JSF 1.2? Ho provato a google ma non riesco a trovare la risposta ...
Soluzione
In breve, JSF 1.1 metterà il infoClass
e consorte su a <span>
dentro il <td>
, ma JSF 1.2 lo metterà sul <tr>
.
Sembra che tu stia usando proprietà CSS molto specifiche che non sono supportate su <tr>
elemento. In tal caso, hai praticamente 2 opzioni:
Cambia la dichiarazione CSS per applicarla
<td>
invece..info_with_icon_messages td { /* ... */ }
Cambiare il
<h:messages>
layout per essere unlist
e aggiungere le seguenti proprietà CSS sulla classe della generata<ul>
, nel tuo caso.messages
, per rimuovere i proiettili e il rientro:.messages { list-style-type: none; margin: 0; /* ... */ }