2010-10-07 4 views
1

J'utilise struts2 + tiles2, et je voudrais faire ce qui suit. J'ai un baselayout, où je définis mon menu, corps, etc comme ceci:Tiles2 regroupe tous les scripts dans une définition ¿?

<tiles:insertAttribute name="menu" /> 
<tiles:insertAttribute name="body" /> 

Et puis dans mon tiles.xml je les mets comme ceci:

<definition name="/index" extends="baseLayout">  
    <put-attribute name="title" value="/public/menu.jsp" /> 
    <put-attribute name="body" value="/public/index.jsp" /> 
</definition> 

Alors, quelques fois je dois des mises en page plus complexes où je peux utiliser plusieurs jsp dans le corps, et certaines de ces jsp ont des scripts en ligne. Je voudrais savoir s'il y a moyen de mettre tous ces scripts en ligne au même endroit. Ainsi, par exemple, je voudrais définir la tête de la page dans la baseLayout, puis ajouter tous les scripts en ligne à cette tête. J'espère qu'il y a un moyen de le faire, mais je trouve la documentation des tuiles très confuse et je n'ai pas trouvé de moyen de le faire.

Merci!

Répondre

0

Dans tiles1 je l'ai fait des trucs comme ça:

baseLayout.jsp 
<html> 
    <head> 
     <tiles:getAsString name="appendedFiles"/> 
    </head> 
<body> 
<tiles:insert attribute="menu"> 
<tiles:insert attribute="body"> 
</body> 
</html> 

tiles-defs.xml 
<definition name="baseLayout" path="/struts/baseLayout.jsp"> 
    <put name="cssfiles"><![CDATA[ 
    <link href="file1.css" rel="stylesheet" type="text/css"> 
    <link href="file2.css" rel="stylesheet" type="text/css"> 
    ]]></put> 
</definition> 

vous pouvez également mettre le contenu dans un jsp séparés puis « tuiles: insertAttribute » comme tout autre contenu.

Questions connexes