Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到映射错误Spring MVC_Java_Spring_Jsp_Spring Mvc - Fatal编程技术网

Java 未找到映射错误Spring MVC

Java 未找到映射错误Spring MVC,java,spring,jsp,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和控制器代码,但没有发现任何错误。因此,如果有人能看一下我的web.xml、ser

我制作了一个非常简单的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和controller的内容,让我知道我在这里遗漏了什么,以及如何克服这个错误,我将不胜感激。谢谢你的时间

  • 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>
    
  • root-context.xml 主要是空的


  • 注意:page01.jsp位于/WEB-INF/views/folder下,请尝试从URL中删除.htm。即:http://[server][:port]/TestAOP/page1


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

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

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

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

    您就是CHAMP!非常感谢:):)问题出在Spring配置路径中。最后一个问题,你们能给我提供一个代码示例吗?在哪里放置代码来测试控制器类初始化?因此,如果下次由于控制器初始化问题而发生这种情况?@controller public class HomeController{public HomeController(){System.out.println(“!!!!”}}}),只需创建一个带有一些输出的默认构造函数,让我们看看spring是否实例化了您的bean。您可以在调试模式下启动服务器,然后在那里添加一个调试点或任何东西。关键是看是否调用了默认构造函数。再次感谢您的帮助:)
    @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";
    }
    }
    
    <context:component-scan base-package="com.sampledomain.app.controller" />