1

我知道这里有很多帖子都有同样的问题,但似乎没有一个对我有帮助,所以这可能是重复的。

我使用 Maven 创建了一个 spring mvc 应用程序,我只有一个控制器和一种方法。当我将请求映射注释仅放在类级别时,应用程序工作正常,但是当我将它放在类级别和方法级别时,我发送如下请求:

本地主机:8080/myapplication/planification/projet

我收到 404 错误:HTTP 状态 404 - /myapplication/planification/WEB-INF/pages/test.jsp

这是我的控制器

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

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

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

    return m;
 }

}

mvc-调度程序-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>
4

1 回答 1

3

等等,您在 RequestMapping 值前面使用/ ,这意味着从根。你应该像这样删除它

 @RequestMapping("projet")

然后去 localhost:8080/myapplication/planification/projet

编辑:

WEB-INF 前面应该有 /!

于 2016-06-01T20:57:08.197 回答