当前位置: 首页 > 知识库问答 >
问题:

在名为“HelloWeb”的DispatcherServlet中找不到URI为[/test/WEB-INF/jsp/hello.jsp]的HTTP请求的映射

陶琦
2023-03-14

我在IntelliJ 14中创建了一个spring mvc项目,就像http://www.tutorialspoint.com/spring/spring_web_mvc_framework.htm做但是出现了这个问题:在名为“HelloWeb”的DispatcherServlet中找不到URI为[/test/WEB-INF/jsp/hello.jsp]的HTTP请求的映射

我在谷歌上搜索到了stackoverflow中的一些链接,但没有任何帮助。我的IDE是IntelliJ 14,Maven版本是3.1.1,Spring框架版本是4.1.6。

这是我的网站。xml:

<servlet>
    <servlet-name>HelloWeb</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>HelloWeb</servlet-name>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

这是我的HelloWebservlet。xml:

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

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/jsp/" />
          <property name="suffix" value=".jsp" />
   </bean>

这是我的控制器:

@Controller
@RequestMapping("/hello")
public class HelloController {
    @RequestMapping(method = RequestMethod.GET)
    public String printHello(ModelMap modelMap) {
        modelMap.addAttribute("message", "Hello Spring MVC FrameWork!");
        System.out.println("Hello, World!");
        return "hello";
    }
}

你好。jsp被定位:/web/web-INF/jsp/hello。jsp及其内容是:

<html>
    <head>
    <title>Hello Spring MVC</title>
    </head>
    <body>
        <h2>${message}</h2>
    </body>
</html> 

令人费解的是,我在printHello()方法中设置了一个断点,当我输入:http://localhost:8080/test/hello.jsp在浏览器中,它进入printHello()方法并打印“Hello,World!”,但却找不到“你好”。jsp页面。

这是我输入的结果http://localhost:8080/test/hello.jsp在浏览器中:

Hello, World!
六月 07, 2015 11:27:11 下午 org.springframework.web.servlet.PageNotFound     noHandlerFound
警告: No mapping found for HTTP request with URI [/test/WEB-INF/jsp/hello.jsp] in DispatcherServlet with name 'HelloWeb'

这很奇怪,任何帮助都将不胜感激。

共有1个答案

于鹏
2023-03-14

您的项目结构可能是错误的。请参阅两条路径:

/test/WEB-INF/jsp/hello.jsp

/web/WEB-INF/jsp/hello.jsp 

它们是不同的。

 类似资料: