Pregunta

Tengo un problema con la representación de la página después de la migración desde WAS 6.0 + JSF 1.1 a 7.0 + JSF 1.2. El principal problema está en el siguiente código:

<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" />

Este código funciona correctamente en Was 6.0 + JSF 1.1 pero no usa estilos debajo de 7.0 + JSF 1.2. He realizado un poco de investigación y descubrí que este problema es solo para diseño = "tabla". Si uso Layout = "List", los estilos están bien. Desafortunadamente, necesito Tabla aquí (porque Layout = "List" crea sangría, y no lo hago para avivar esto). También he encontrado que el código HTML generado en caso de diseño = "Tabla" es muy diferente para JSF 1.1 y JSF 1.2.

Entonces, mi pregunta: ¿es posible forzar la generación HTML de estilo antiguo (JSF 1.1) por 7.0 + JSF 1.2? Traté de buscarlo en Google pero no puedo encontrar respuesta ...

¿Fue útil?

Solución

En pocas palabras, JSF 1.1 pondrá el infoClass y consorte en un <span> dentro de <td>, pero JSF 1.2 lo pondrá en el <tr>.

Parece que está utilizando propiedades CSS muy específicas que no son compatibles con el <tr> elemento. En ese caso, básicamente tienes 2 opciones:

  1. Cambiar la declaración de CSS para aplicarla <td> en cambio.

    .info_with_icon_messages td {
        /* ... */
    }
    
  2. Cambiar el <h:messages> Diseño para ser un list y agregue las siguientes propiedades de CSS en la clase de la generada <ul>, en tu caso .messages, para quitar las balas y la sangría:

    .messages {
        list-style-type: none;
        margin: 0; 
        /* ... */
    }
    
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top