Важной частью использования InternalResourceViewResolver, по-видимому, является то, что Spring должен быть включен в поток кода при обработке страницы jsp.
Если вы обращаетесь к странице jsp напрямую или иным образом, минуя какое-либо действие на основе Spring (например, возможно, путем внутренней переадресации на страницу jsp из-за конфигурации входа в систему в web.xml), это не будет работать.
Тем не менее, можно настроить ваше приложение так, чтобы определенные bean-компоненты были доступны для всего, что может попасть в ServletContext (он же applicationScope) через
использование класса ServletContextAttributeExporter .
В вашей конфигурации пружины добавьте:
<bean id="mybean" .../>
<bean class="org.springframework.web.context.support.ServletContextAttributeExporter">
<property name="attributes">
<map>
<entry key="attrname" value-ref="mybean"/>
</map>
</property>
</bean>
Затем на странице JSP вы можете получить доступ к этому бину с помощью:
${applicationScope.attrname}
или если вы знаете, что у вас нет атрибута "attrname" в более конкретной области, просто:
${attrname}
Очевидно, что это не сможет ссылаться на bean-компоненты области запроса или сеанса, но если вам нужен доступ к одноэлементному bean-компоненту, он прекрасно работает.