JSPX приводит к копированию-вставке кода? - PullRequest
2 голосов
/ 06 апреля 2011

Как только JSPX должен быть правильно сформированным XML, невозможно иметь часть заголовка, включая начало тега, в отдельном включенном файле, так как должна быть закрыта.

Похоже, вы всегда должны входить во все свои главные страницы? Или я что-то пропустил?

1 Ответ

2 голосов
/ 17 апреля 2011

Apache Tiles, предположительно, решает эту проблему, он позволяет создавать шаблоны и повторно использовать компоненты JSPX.

Обновленный ответ:

В вашем views.xml у вас будет что-то вроде следующего:

<definition extends="error" name="dataAccessFailure">
    <put-attribute name="body" value="/WEB-INF/views/dataAccessFailure.jspx"/>
</definition>

<definition extends="default" name="index">
    <put-attribute name="body" value="/WEB-INF/views/body/index.jspx"/>
    <put-attribute name="side" value="/WEB-INF/views/side/index.jspx"/>
</definition>

И ошибка, и настройка по умолчанию - это макеты, которые я определил в каталоге макетов, ошибка - это макет с одним столбцом, а по умолчанию - макет с двумя столбцами.

Также в каталоге раскладок находится файл layouts.xml:

<tiles-definitions>

    <definition name="default" template="/WEB-INF/layouts/default.jspx">
        <put-attribute name="header" value="/WEB-INF/views/header.jspx" />
        <put-attribute name="menu" value="/WEB-INF/views/navigation.jspx" />
        <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" />
    </definition>

    <definition name="error" template="/WEB-INF/layouts/error.jspx">
        <put-attribute name="header" value="/WEB-INF/views/header.jspx" />
        <put-attribute name="menu" value="/WEB-INF/views/navigation.jspx" />
        <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" />
    </definition>

</tiles-definitions>

Я лично не выполнял интеграцию Apache тайлов вручную, я просто использую Spring ROO, чтобы сгенерировать для меня полный стек, а затем добавлять / удалять вещи по мере необходимости.

...