Soy bastante experimentado desarrollador Grails, pero la mayor parte de mi experiencia ha sido con el uso de grails para servir JSON/XML en una aplicación flex y relativamente simple de HTML sitios web.

He sido de buceo más profundo en el uso de la sitemesh integración en grails y yo estoy luchando un poco para encontrar las mejores prácticas para algunas configuraciones más complejas, y tengo la curiosidad de si hay buenos tutoriales o ejemplos por ahí. El original Sitemesh sitio web no es tan útil como las etiquetas habla de que no están directamente expuestos en grails.

Una búsqueda de google está mostrando su mayoría de edad mensajes de la lista y algo de vainilla sitemesh de las cosas que me está ayudando a mover un poco más adelante, pero es un montón de prueba y error.

Estoy totalmente de entender cómo el básico g:layoutTitle, g:layoutHead, y g:layoutBody etiquetas de trabajo. Esos son fáciles y bien documentado.

El tipo de cosas que me gustaría ver ejemplos de:

  • g:applyLayout – la documentación sobre este es débil y no entiendo bien los usos sugeridos en el principal docs. Cómo es esto diferente de la configuración de la meta name='layout' content='foo' propiedad?

  • g:pageProperty – algunos de los mejores ejemplos sobre cómo conseguir y usar las propiedades en la plantilla principal mediante el establecimiento de los valores como meta etiquetas en la página que se está decorado. El grails docs en pageProperty mostrar sólo el atributo onload del cuerpo que está siendo llevado adelante. Creo que también se puede utilizar la etiqueta meta de los valores aquí también, ¿algo más?

  • puede utilizar varios niveles de sitemesh diseños? Mi prueba parece que me hacen pensar que no puedo, pero que parece reducir la capacidad de reutilización. Creo que la respuesta aquí es algunos de uso de la g:applyLayout, pero que es donde estoy luchando por la mayoría.

InformationsquelleAutor Ted Naleid | 2008-12-04

4 Comentarios

  1. 14

    Bien, me puede contestar un poco:

    Su primera y tercera preguntas están relacionadas, ya que no puede de la cadena de diseños de uso de la etiqueta meta.

    Su última página debe tener una etiqueta meta como usted sugiere, pero si quieres capa de un diseño en la parte superior de otro diseño, de poner un g:applyLayout etiqueta en la parte superior de la presentación, señalando a los padres.

    En su edición.gsp, tendríamos:

    <meta name="layout" content="editTemplate" />

    y en editTemplate.gsp, tendríamos:

    <g:applyLayout name="baseTemplate" >
    <!-- the html for the editTemplate -->
    </g:applyLayout>

    para editar.gsp usaría editTemplate.el sgp, que haría uso de baseTemplate.gsp como base de diseño. Puede la cadena de los necesarios.

    No he utilizado g:pageProperty en todos, así que no puede tirar usted mejores ejemplos que hay, lo siento.

  2. 27

    la g:pageProperty es un muy potente, pero muy mal documentado cosa. Digamos que en mi diseño, me especificar dónde poner algún contenido como este:

    <html>
    <body>
    <g:pageProperty name="page.header" />
    </body>

    Ahora en mi página puedo especificar el contenido:

    <content tag="header">
    <!-- header -->
    </content>

    Sitemesh se tome el contenido de la etiqueta, independientemente de la posición real en el código HTML de la página y el lugar donde necesita ir en el flujo de la presentación.

    Aún mejor, si dentro de mi página me hacen una plantilla que especifica también un área de contenido con una etiqueta de «cabecera», que se sobreponen a la primera declaración, y que será la plantilla del contenido que se representará en el diseño final.

    • mi dios esta es la respuesta exacta a mi problema, el punto aquí es el uso de la página.’ En el pageProperty nombre. +1000
    • Nunca he visto esta documentado en ninguna parte. Puedo elegir grails desde un montón de sitios de estado que está bien documentado… No es mi experiencia hasta ahora..
  3. 4

    La Sitemesh junto con Grails es un muy característica muy potente. Cuanto más lo uso más me encanta. Se puede decorar cualquier parte de nuestro sitio web: usted puede tener el diseño de los mensajes de error, información sobre herramientas, noticias líneas, comentarios, etc, etc. Sólo tenga en cuenta que usted puede hacer incluso que en sus páginas y tiene varios niveles de la decoración (no <contenido> es necesario):

    /vista/diseño/de la línea del mensaje de error.gsp

    <span class="errorMessageInSomeFancyBox">
        <span class="errorIcon"></span>
        <g:layoutBody />
    <span>

    /views/libro/crear.gsp

    <%-- let's decorate our error message with some fancy box --%>
    <g:applyLayout name="inline-error-message">${some.error.message}</g:applyLayout>
    • Es el mismo que el de las plantillas con g:render. ¿Hay alguna diferencia?
    • Esta aplicación es mucho más limpio si usted tiene literalmente cientos de plantillas. Usted no quiere terminar con cientos de g:renders y tienen muchas propiedades en «${comillas}». Esto es más fácil de leer y de mantener. Para los pequeños sitio web no hace una diferencia.
  4. 0

    Ver nuestro Rabbtor Escaparate De La Aplicación para un par de ejemplos muy buenos en

    • la creación de diseños anidados
    • plantillas de representación
    • la aplicación de diseños de partes específicas de una página

    . Esta aplicación es en realidad un escaparate de nuestra herramienta Rabbtor que permite el uso de GSP fuera de Grails pero las piezas relacionadas con Sitmesh también son válidos para Grails.

Dejar respuesta

Please enter your comment!
Please enter your name here