Что такое простой способ разрешить путь к JSP файлу, который не находится в корневом каталоге JSP веб-приложения с использованием SpringMVCs viewResolvers? Например, предположим, что мы имеем следующую структуру веб-приложения:
web-app
|-WEB-INF
|-jsp
|-secure
|-admin.jsp
|-admin2.jsp
index.jsp
login.jsp
Я хотел бы использовать некоторые готовые компоненты для разрешения JSP файлов в корневой папке jsp и в безопасном подкаталоге. У меня есть файл *-servlet.xml
, который определяет:
из коробки, InternalResourceViewResolver
:
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
отображение обработчика:
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/index.htm">urlFilenameViewController</prop>
<prop key="/login.htm">urlFilenameViewController</prop>
<prop key="/secure/**">urlFilenameViewController</prop>
</props>
</property>
</bean>
встроенный контроллер UrlFilenameViewController
:
<bean id="urlFilenameViewController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController">
</bean>
Проблема заключается в том, что запросы к JSP в безопасном каталоге не могут быть разрешены, поскольку jspViewResolver
имеет только префикс, указанный как /jsp/
, а не /jsp/secure/
.
Есть ли способ обрабатывать такие подкаталоги? Я бы предпочел сохранить эту структуру, потому что я также пытаюсь использовать Spring Security и иметь все защищенные страницы в подкаталоге - это хороший способ сделать это.
Вероятно, есть простой способ добиться этого, но я новичок в Spring и Spring MVC, поэтому любые указатели будут оценены.