2010-10-07 2 views
1

Я использую struts2 + tiles2, и я хотел бы сделать следующее. У меня есть baseLayout, где я определяю свое меню, тело, и т.д., как это:Tiles2 группа всех скриптов внутри определения ¿?

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

И тогда в моем tiles.xml я поставил их так:

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

Так, несколько раз у меня есть более сложные макеты, где я могу использовать несколько jsp в теле, а некоторые из этих jsp имеют встроенные скрипты. Я хотел бы знать, есть ли способ установить все эти встроенные скрипты, которые будут добавлены в одно и то же место. Так, например, я хотел бы определить заголовок страницы в baseLayout, а затем добавить все встроенные скрипты в эту главу. Надеюсь, есть способ сделать это, но я считаю, что документация на плитки очень запутанна, и я не нашел способ сделать это.

Спасибо!

ответ

0

В tiles1 я сделал такие вещи, как это:

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> 

В качестве альтернативы вы можете поместить содержимое в отдельную JSP, а затем «плитки: insertAttribute», как и любой другой контент.