Javadocs для DispatcherServlet указывают, как определяется 'viewNameTranslator':
Если имя представления или представления не предоставлено пользователем, то сконфигурированный RequestToViewNameTranslator преобразует текущий запрос в имя представления. Соответствующее имя бина "viewNameTranslator
"; по умолчанию DefaultRequestToViewNameTranslator
.
Так что, если вы хотите немного отличного поведения "просмотра именного переводчика", вам придется предоставить свой собственный экземпляр. Вы, вероятно, легко можете просто создать подкласс DefaultRequestToViewNameTranslator
, чтобы добавить логику в случае имени файла.
Но, честно говоря, я бы действительно предложил, чтобы ваши контроллеры возвращали именованные представления и не должны полагаться на то, что имя представления совпадает с URI. Это позволяет использовать одно и то же представление для нескольких URL-адресов / контроллеров и позволяет по-настоящему абстрагировать понятие «представление» от URL-адреса.
(Если честно, я использовал Spring MVC около 5 месяцев в довольно большом приложении и даже не знал, что этот класс DefaultRequestToViewNameTranslator
находится в фреймворке или что viewNameTranslator - это то, ДиспетерСервлет будет использовать!)