情景:当访问特定处理器的方法时遇到;页面跳转失败遇到此
解决后的spring.xml文件(bean标签为重点)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 如果不扫面则会找不到对应处理器类 --> <!--通过注解实现配置别忘了扫描!!!!--> <context:component-scan base-package="com.bjpowernode.control"/> <!--使用何种jar包对DispatcherServlet接收对象转换JSON格式字符串--> <mvc:annotation-driven/> </beans>
解决后的web.xml文件:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <!--配置核心处理器DispatcherServlet--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 这里如果不设置下的话,dispatcherServlet会自动到webinf下去找xml文件 --> <init-param> <param-name>contextConfigLocation</param-name> <!--找到spring核心配置文件作为上下文配置文件--> <param-value>classpath:applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <!--这个是拦截请求:拦截所有以do为结尾的请求--> <!--还有其他的请求拦截方式: /* :拦截所有 ; / :不会拦截jsp,但会拦截静态资源 --> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
附带tomcat10需要的jar包:(上面是tomcat9的jar包)(el表达式也得换新的)
<!-- <dependency>--> <!-- <groupId>org.springframework</groupId>--> <!-- <artifactId>spring-webmvc</artifactId>--> <!-- <version>5.3.29</version>--> <!-- </dependency>--> <!-- <dependency>--> <!-- <groupId>javax.servlet</groupId>--> <!-- <artifactId>javax.servlet-api</artifactId>--> <!-- <version>4.0.1</version>--> <!-- <scope>provided</scope>--> <!-- </dependency>--> <!-- Tomcat10 要使用新的版本(6以上)的springframework jar包,jakarta代替了javax --> <!-- 以下不知为何就是不行,改回原来的tomcat9以及javax --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>6.0.2</version> </dependency> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> </dependency> <dependency> <groupId>jakarta.servlet.jsp</groupId> <artifactId>jakarta.servlet.jsp-api</artifactId> <version>3.0.0</version> </dependency>
<dependency> <groupId>jakarta.servlet.jsp.jstl</groupId> <artifactId>jakarta.servlet.jsp.jstl-api</artifactId> <version>2.0.0</version> </dependency>