找不到映射错误Spring MVC

时间:2014-01-01 14:47:13

标签: java spring jsp spring-mvc

我制作了一个非常简单的Spring MVC应用程序来学习AOP,但每次我尝试浏览任何应用程序页面时,都会得到(找不到映射)错误,如下所示:

No mapping found for HTTP request with URI [/TestAOP/page1.htm] in DispatcherServlet with name 'appServlet'

我加倍检查了web.xml,servlet-context.xml,控制器代码但是没有注意到任何错误。所以如果有人能够查看我的web.xml,servlet-context.xml和控制器的内容,我将非常感激,并让我知道我在这里缺少什么以及如何克服这个错误。谢谢你的时间

  1. Web.xml中

      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-context.xml</param-value>
      </context-param>
    
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    
      <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>              
      <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
  2. servlet的context.xml中

  3.   <annotation-driven />
      <context:component-scan base-package="com.sampledomain.app.controller" />
    
      <aop:aspectj-autoproxy/>
    
      <resources mapping="/resources/**" location="/resources/" />
    
      <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
      </beans:bean>
    
    1. 控制器

      @Controller
      public class HomeController {
      
      @RequestMapping(value = "/page1", method = RequestMethod.GET)
      public String firstPage(HttpServletRequest request,Locale locale, Model model) {        
          Date date = new Date();
          DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);   
          String formattedDate = dateFormat.format(date); 
          model.addAttribute("serverTime", formattedDate );
          return "page01";
      }
      }
      
    2. 根的context.xml 主要是空的

    3. 注意:page01.jsp位于/ WEB-INF / views / folder

2 个答案:

答案 0 :(得分:2)

我建议仔细检查控制器是否由spring实例化。最简单的方法是创建一个带有sysout的空构造函数(“我的控制器已经实例化!!!”)或者其他什么,让我们看看这行是否在catalina.out中。看看是否

<context:component-scan base-package="com.sampledomain.app.controller" />

这是您的控制器的正确包。如果你的控制器没有被弹簧实例化,那么也要检查弹簧配置路径等。

答案 1 :(得分:0)

尝试从网址中删除.htm。即:http:// [server] [:port] / TestAOP / page1。

这应与控制器上的映射相匹配。