SiteMesh немного хрупок, и вы не получаете от него много информации о регистрации, поэтому может быть сложно определить, действительно ли что-то происходит.
Я предполагаю, что декоратор обойден, потому что тип контента не совпадает. Ваш sitemesh.xml
файл содержит следующую запись:
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
</page-parsers>
Другими словами, декоратор будет вызываться, только если тип контента ответа text/html
.
Вы сказали, что это работает, если вы указываете его на путь, который не проходит через Spring, и я думаю, что это потому, что Spring изменяет тип содержимого и поэтому обходит декоратор.
Попробуйте добавить следующую дополнительную запись в sitemesh.xml
:
<parser content-type="text/html;charset=ISO-8859-1" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
Обратите внимание на charset
, добавленный к типу контента. Spring MVC довольно привередлив с типами контента, и я подозреваю, что он меняет его на нечто, включающее кодировку. Если ваша локальная кодировка отличается от ISO-8859-1
, попробуйте это. Вы можете добавить столько <parser>
записей, сколько хотите.