导致出现的问题如下:
原因:WEB-INF是项目的根路径,没在WEB-INF前面加 " / "导致在类上加RequestMapping时候会把RequestMapping(path="/user")的user加在WEB-INF 前面,导致跳转success.jsp找不到资源。
解决后的全部代码:
springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--扫描注册的包-->
<context:component-scan base-package="cn.itcast"></context:component-scan>
<!--配置视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--开启SpringMVC框架注释支持-->
<mvc:annotation-driven></mvc:annotation-driven>
</beans>
HelloController代码:
package cn.itcast.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(path = "/user")
public class HelloController {
@RequestMapping(path = "/hello")
public String sayHello(){
System.out.println("入门成功");
return "success";
}
@RequestMapping(path = "/helloRequestMapping")
public String sayHello2(){
System.out.println("Hello SpringMVC!");
return "success";
}
}
index.jsp代码
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="user/hello">入门程序</a>
<h1>入门程序</h1>
<h2>入门程序之requestMapping</h2>
<a href="user/helloRequestMapping"><h2>requestMapping放在类上测试</h2></a>
</body>
</html>
成功运行截图:
前端:点击跳转success.jsp成功
后端:方法执行成功