Весна и просмотр резольверов - PullRequest
5 голосов
/ 03 марта 2010

возможно ли использовать InternalResourceViewResolver и BeanNameViewResolver вместе в одном веб-приложении?

Я имею в виду InternalResourceViewResolver для разрешения моего jsp.

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>

и вместо него BeanNameViewResolver для разрешения моего Excel (мне нужно передать URL).

Bye. Спасибо

Ответы [ 2 ]

9 голосов
/ 03 марта 2010

Вы можете иметь столько разборщиков представлений в вашем контексте, сколько захотите, Spring будет просматривать их один за другим, пока не найдет тот, который разрешает представление.

Существует одно большое предостережение:

Примечание: при сцеплении ViewResolvers InternalResourceViewResolver всегда должен быть последним, так как попытается разрешить любое имя представления, неважно является ли основной ресурс на самом деле существует.

Это "недостаток" в API сервлетов, поскольку InternalResourceViewResolver не может узнать, существует ли ресурс, до того, как он его попробует.

Поэтому убедитесь, что ваш BeanNameViewResolver определен до InternalResourceViewResolver, или явно укажите свойство order для каждого из них.

3 голосов
/ 03 марта 2010

Да, вы можете объединить несколько распознавателей. Spring перебирает их и использует первый распознаватель, который может разрешить указанное имя. Вы также можете установить свойство order в резольверах, чтобы указать порядок итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...