Was ist eine einfache Möglichkeit, den Pfad zu einer JSP-Datei aufzulösen, die sich nicht im Stamm-JSP-Verzeichnis einer Webanwendung befindet Verwenden von SpringMVCs viewResolvers? Angenommen, wir die folgende Web-Anwendung Struktur haben:Spring MVC: Wie Sie den Pfad zu den Unterverzeichnissen des Stammverzeichnisses 'JSP' in einer Webanwendung auflösen
web-app
|-WEB-INF
|-jsp
|-secure
|-admin.jsp
|-admin2.jsp
index.jsp
login.jsp
Ich mag würde einige out-of-the-box-Komponenten verwenden, um die JSP-Dateien im jsp Stammordner und den sicheren zu lösen Unterverzeichnis. Ich habe eine *-servlet.xml
Datei, die definiert:
eine Out-of-the-box, 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>
a handler Mapping:
<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>
eine Out-of-the-box-UrlFilenameViewController
Controller:
<bean id="urlFilenameViewController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController">
</bean>
Das Problem, das ich habe, ist, dass Anfragen an die JSPs im sicheren Verzeichnis können nicht aufgelöst werden, da jspViewResolver
nur ein Präfix hat, das als /jsp/
und nicht /jsp/secure/
definiert ist.
Gibt es eine Möglichkeit, Unterverzeichnisse wie diese zu behandeln? Ich würde es vorziehen, diese Struktur zu behalten, weil ich auch versuche, Spring Security zu verwenden und alle sicheren Seiten in einem Unterverzeichnis zu haben ist eine nette Möglichkeit, dies zu tun.
Es gibt wahrscheinlich eine einfache Möglichkeit, dies zu erreichen, aber ich bin neu in Spring und der Spring MVC-Framework, so dass alle Zeiger geschätzt werden würden.
Unverknüpfte Notiz, aber Sie müssen 'JstlView' nicht mehr als' viewClass' angeben, Spring wird das standardmäßig herausfinden. – skaffman