Выбор подходящего шаблона URL для Sitemesh, чтобы исключить мой сервлет из его декораторов? - PullRequest
4 голосов
/ 13 сентября 2010

Я настроил свое веб-приложение Spring с сервлетом для обслуживания изображений по URL-адресу:

/imgsrv?imgid=12345

У меня также установлен Sitemesh, и теперь, когда я вызываю этот сервлет изображения, я получаю исключение для декоратора, связанное с этим сервлетом, которому не требуется применять декоратор.

Согласно документации Sitemesh , вы можете исключить определенные URL-адреса от применения к ним декоратора, но синтаксис мне неясен.

Какой из следующих шаблонов будет наиболее правильным, чтобы исключить приведенный выше URL из списка "оформленных":

<decorators defaultdir="/WEB-INF/view/decorators">
    <excludes>
        <pattern>/imgsrv*</pattern>
        <pattern>/imgsrv/*</pattern>
        <pattern>/imgsrv**</pattern>
        <pattern>/imgsrv/**</pattern>
        <pattern>/imgsrv*.*</pattern>
        <pattern>/imgsrv/*.*</pattern>
    </excludes>
    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>
</decorators>

1 Ответ

8 голосов
/ 13 сентября 2010

Я думаю, что этого будет достаточно:

<decorators defaultdir="/WEB-INF/view/decorators">
    <excludes>
        <pattern>/imgsrv</pattern>
    </excludes>
    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>
</decorators>

Вы отображаете непосредственно на известный путь сервлета.Вам не нужно подстановочный знак для обработки параметров (как в ?imgid=12345).

...