lunes, 25 de febrero de 2013

Configurar pagina maestra de tiles con struts 1.x para css y javascripts

Bueno algunas veces necesitamos agregar javascript o hojas de estilo que no sean propios de la página maestra sino de los hijos, pues bien lo podemos hacer de la siguiente forma.

En tiles-defs.xml

       <definition name="master" path="/jsp/templates/principal.jsp">
  <put name="title" value="Sistema" />
  <put name="body" value="/recursos/html/contenido.html" />
  <putList name="cssList" />
  <putList name="jsFilesList" />
     </definition>


Y ahora en el principal.jsp


  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

   <tiles:useAttribute id="cssList" name="cssFilesList" classname="java.util.List" />
        <c:forEach var="cssFileName" items="${cssList}">
              <link type='text/css' rel="stylesheet" href="<%=request.getContextPath()%><c:out value='${cssFileName}' />" />
        </c:forEach>
   
   <tiles:useAttribute id="jsList" name="jsFilesList" classname="java.util.List" />
        <c:forEach var="jsFileName" items="${jsList}">
              <script type="text/javascript" src="<%=request.getContextPath()%><c:out value='${jsFileName}' />"></script>
        </c:forEach>

Ya por último los hijos que extiendan de master en su respectivo xml sobreescriben.

<definition name="childPage" path="/child.jsp" extends="master">
        <putList name="cssList">
            <add value="/css/hoja1.css"/>
            <add value="/css/hoja2.css"/>
        </putList>
   <putList name="jsList">
            <add value="/js/Script1.js"/>
            <add value="/js/Script2.js"/>
        </putList>
    </definition>

No hay comentarios:

Publicar un comentario