Атрибут «наследовать» должен быть объявлен для типа элемента «put-list-attribute»

1

Я использую Apache tile 3.0.5 с Spring MVC. Но, когда я пытаюсь включить JS/CSS с конкретными страницами, используя "put-attribute", я получаю сообщение об ошибке:

Атрибут "inherit" должен быть объявлен для типа элемента "put-list-attribute".

Ниже мой файл tile.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>

    <!-- Default Main Template -->
    <definition name="mainTemplate" template="/WEB-INF/tiles/template.jsp">
        <put-attribute name="title" value="Simple Tiles 2 Example" type="string" />
        <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
        <put-attribute name="navigation" value="/WEB-INF/tiles/nav.jsp" />
        <put-attribute name="body" value="/WEB-INF/tiles/blank.jsp" />
        <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
        <put-list-attribute name="javascripts">
	        <add-attribute value="/jquery.min.js" />
	        <add-attribute value="/bootstrap.min.js" />
	        <add-attribute value="/bootstrap-datepicker.min.js" />
	    </put-list-attribute>
	    <put-list-attribute name="stylesheets">
	        <add-attribute value="/bootstrap.min.css" />
	        <add-attribute value="/business-casual.css" />
	        <add-attribute value="/bootstrap-datepicker.min.css" />
	    </put-list-attribute>
    </definition>
 
 	<!-- Default Main Template -->
    <definition name="dataEntryTemplate" template="/WEB-INF/tiles/data-entry-template.jsp">
        <put-attribute name="body" value="/WEB-INF/tiles/blank.jsp" />
    </definition>
 
    <definition name="home" extends="mainTemplate">
    	<put-attribute name="title" value="Home" type="string" />
        <put-attribute name="body" value="/WEB-INF/views/index.jsp" />
    </definition>

    <definition name="manage-student" extends="mainTemplate">
    	<put-attribute name="title" value="Manage Student" type="string" />
        <put-attribute name="body" value="/WEB-INF/views/manage-student.jsp" />
        <put-list-attribute name="javascripts" cascade="true" inherit="true">
	        <add-attribute value="/sign-in.js" />
	    </put-list-attribute>
    </definition>
</tiles-definitions>
Теги:
spring
tiles

2 ответа

0

Просто такая же проблема

это из-за DTD, который в нашем случае был для плит 2 (скопирован из некоторого учебника), но у нас есть Tiles 3.

Вместо этого замените DTD следующим образом:

<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
0

Можете ли вы добавить элемент inherit = "true" для вашего первого тэга put-list-attribute

т.е.

<put-list-attribute name="javascripts" inherit="true">

Надеюсь, это решит вашу проблему.

  • 0
    Я уже добавил это. Вы можете увидеть в моем файле настроек выше.
  • 0
    Просто хит, но в определении mainTemplate у вас есть 2 тега put-list-attribute прямо сейчас. может быть, некоторые из js или таблица стилей пытается унаследовать от библиотеки по умолчанию и просит вас добавить наследовать = true. можешь попробовать один раз
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню