2016-06-01 11 views
0

Ich weiß, dass es viele Beiträge hier mit dem gleichen Problem gibt, aber keine von ihnen scheint mir zu helfen, so wird dies wahrscheinlich ein Duplikat sein.Spring mvc @RequestMapping auf Klassenebene und Methodenebene 404 Status

Im Erstellen einer Federmvc-Anwendung mit Maven, ich habe nur einen Controller mit einer Methode. Wenn ich die Annotation der Anforderungszuordnung nur auf Klassenebene setze, funktioniert die Anwendung gut, aber wenn ich sie auf die Klassenebene und die Methodenebene bringe, sende ich eine Anfrage wie diese:

localhost: 8080/myapplication/planification/projet

i erhalten Fehler 404: HTTP-Status 404 - /myapplication/planification/WEB-INF/pages/test.jsp

hier ist mein Controller

@Controller 
@RequestMapping("/planification") 
public class PlanificationController { 

@RequestMapping("/projet") 
public ModelAndView projets (ModelAndView m){ 

    m.addObject("projets", "All projects"); 
    m.setViewName("test"); 

    return m; 
} 

} 

mvc-Dispatcher-servlet.xml

<beans> 

<context:component-scan base-package="com.smit"/> 

<mvc:annotation-driven/> 

<!-- **** VIEW RESOLVER BEAN **** --> 

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 

    <property name="prefix"> 
     <value>WEB-INF/pages/</value> 
    </property> 

    <property name="suffix"> 
     <value>.jsp</value> 
    </property> 

</bean> 

</beans> 

web.xml

<web-app> 
<servlet> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet- class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

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

    </param-value> 
</context-param> 
</web-app> 

Antwort

0

Halten Sie an, Sie / vor RequestMapping Wert verwenden, die von der Wurzel bedeutet. Sie sollten es wie diese

entfernt
@RequestMapping("projet") 

dann auf localhost gehen: 8080/myapplication/Planifikation/projet

Edit:

WEB-INF sollte vor haben /!

+0

das hat nicht funktioniert:/ –

+0

Slash sollte es auf Klassenebene sein, aber nicht auf der Methode – arseniyandru

+0

Oh nein, auch WEB-INF sollte/vor haben! – arseniyandru