2016-06-24 1 views
0

Hier ist mein Problem: Zunächst habe ich spring-servlet.xml im Stammverzeichnis meines WEB-INF-Ordners platziert. Dann wurde "MVC" automatisch erkannt und alles ging gut (siehe ersten Bildschirm).Intellij Idee. Sobald der Spring MVC-Kontext automatisch erkannt wird, kann der Speicherort nicht geändert werden.

Dann wollte ich meine spring-servlet.xml in den Ordner config verschieben. Ich habe es verschoben und alle Bindungen wurden verloren, und der Kontext zeigte auf den vorherigen Speicherort (siehe zweiten Bildschirm). Wenn ich "MVC spring servlet context" lösche und auf "Übernehmen" klicke, wird es nicht wirklich gelöscht (wenn ich nach dem Löschen zurückgehe, ist es immer noch da).

Ich denke, ich muss den Speicherort manuell angeben, aber ich weiß nicht, wie man es in Intellij macht.

Wie löst man dieses Problem?

enter image description hereenter image description here

Antwort

0

Ich glaube, nach der Standardkonfiguration von Spring MVC, es ist die direkt von WEB-INF-Datei Dispatcher-Servlet auswählen. Wenn Sie jedoch den benutzerdefinierten Speicherort bereitstellen möchten, können Sie <init-param> für "dispatcherServlet" in web.xml verwenden und den benutzerdefinierten Speicherort der XML-Datei angeben. Eg.

<servlet> 
    <servlet-name>SpringDispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/config/applicationContext-mvc.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

Ein anderer Weg ist Frühling ContextLoaderListner in web.xml und gibt XML-Datei als <context-param> Eg zu verwenden.

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>