Хорошо, поэтому я не уверен, что это будет работать для более ранних версий Tiles и Spring (в настоящее время используются Spring 3.1 и Tiles 2.2.2), но здесь все равно идет.
Я понял, что по какой-то причине, когда вы выполняете импорт с использованием библиотеки основных тегов в шаблоне плиток, и, скажем, импорт, в свою очередь, вызывает контроллер Spring MVC, это вызовет бесконечный цикл.Чтобы обойти это, я сделал следующее:
Добавьте атрибут в определение плиток макета, который будет ссылаться на jsp, содержащий код для импорта.Скажем, например:
<definition name="cti.layouts.fooBarLayout" template="/WEB-INF/views/layouts/foo-bar-layout.jsp">
<put-attribute name="body" value="/WEB-INF/views/some-body.jsp"/>
<put-attribute name="foo" value="/WEB-INF/views/my-import.jsp"/>
</definition>
В этом примере вы хотите добавить код импорта в my-import.jsp.Вы можете использовать базовый тег JSTL <c:import>
Внутри foo-bar-layout.jsp добавьте тег tile: insertAttribute туда, куда вы хотите, чтобы эта импортированная страница шла.Ссылка на имя атрибута (в данном случае 'foo'):
<tiles:insertAttribute name="foo"/>
Теперь вы можете расширять этот макет, не заботясь о бесконечном цикле.Не уверен, почему это работает, поскольку я не понимаю, что делает базовая реализация, но по какой-то причине плитки не позволяют использовать динамический импорт внутри страницы шаблона.
Надеюсь, это помогло.