java - Spring MVC 找不到映射错误

标签 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、 Controller 代码,但没有发现任何错误。因此,如果有人可以查看我的 web.xml、servlet-context.xml 和 Controller 的内容,并让我知道我在这里缺少什么以及如何克服这个错误,我将非常感激。感谢您的宝贵时间

  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

  <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

    @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. 根上下文.xml 主要是空的

注意:page01.jsp位于/WEB-INF/views/文件夹下

最佳答案

我建议仔细检查 Controller 是否由 spring 实例化。最简单的方法是使用 sysout(“我的 Controller 已被实例化!!!”) 或其他内容创建一个空构造函数,然后让我们看看该行是否在 catalina.out 中。看看是否

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

这是您 Controller 的正确包。如果您的 Controller 不是由 spring 实例化的,请仔细检查 spring 配置路径等。

关于java - Spring MVC 找不到映射错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869803/

相关文章:

java - Glassfish 无法启动,端口被占用

java - MongoDB:如何使用 Java 构建算术查询

java - 如何在内部事务失败但内部事务应该保存数据的情况下回滚外部事务 Spring

java - 如何在 Spring Boot 嵌入式 tomcat 中设置 HTTPS SSL Cipher Suite Preference

java - 如何将空列表转换为空列表?

java - java中的url编码?

java - JSP 未在 bean 中找到属性

java - Java HTTP 请求的简写回调

java - 如何在 Play 中运行协和测试?

java - 使用java中的其他正常数据值将图像从servlet检索到jsp