404错误
报错如图,
十月 31, 2018 10:26:16 上午 org.springframework.web.servlet.PageNotFound noHandlerFound
警告: No mapping found for HTTP request with URI [/modelAndViewTest] in DispatcherServlet with name 'SpringMVC'
AnnotationHandler:
package com.imooc.handler; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class AnnotationHandler { @RequestMapping("/modelAndViewTest") public ModelAndView modelAndViewTest(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("name","xxxt"); modelAndView.setViewName("show"); return modelAndView; } }
启动tomcat的时候,show.jsp页面正常显示空白,访问路径:http://localhost:8080/modelAndViewTest的时候就报404错误,tomcat也出现如图一的错误,看起来好像是@RequestMapping没有被识别???麻烦老师看一下这是什么原因呢
网上有解释说:
1、控制层没有被spring扫描到,控制层没有实例化,检查自己的控制层是否被spring扫描到,检查以下配置:<context:component-scan base-package=""/>
2、web.xml配置文件的<url-pattern>标签配置成<url-pattern>/*</url-pattern>,正确的配置应该是<url-pattern>/</url-pattern>。学了structs之后再学spring mvc框架的 就会很容易犯这个错误。
3、使用的是注解实例化控制层,且web.xml的路径配置为<url-pattern>/</url-pattern>,却没有在spring的配置文件使用<mvc:annotation-driven />标签,导致URL解析出错,检查是否加上<mvc:annotation-driven />。
1.2都已经做了,3添加了这个标签还是报一样的错误
正在回答
这里的过滤器Spring框架为我们提供了代码,我们只需要在web.xml中配置过滤器的字符编码集即可,从下图标记的类中,可以看出他是spring过滤器的一部分,所以不需要我们在去手动去写过滤器了,Spring框架都自动的为我们完成了这些需求。
在配置encoding和forceEncoding时,这两个参数名字是固定的,因为spring框架需要识别这两个参数名,encoding就是字符编码的格式了,这里的forceEncoding需要解释一下,forceEncoding默认值为false,只要你设置了foreEncoding=true,则在代码中设置编码格式没用,都会统一将编码格式设置为ecoding的编码格式。如果同学还有什么不明白的地方,可以继续提问哦,祝学习愉快~
将你的代码粘贴到老师的源码中是没有问题的,议同学将下面的代码粘贴到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> <display-name>Archetype Created Web Application</display-name> <!--处理中文乱码--> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--设置访问静态资源--> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class> <!--配置springmvc.xml的路径--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
<?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:tool="http://www.springframework.org/schema/tool" 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/tool http://www.springframework.org/schema/tool/spring-tool.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--<mvc:default-servlet-handler/>--> <context:component-scan base-package="com.imooc"/> <!--<mvc:annotation-driven />--> <!--<context:annotation-config />--> <!--<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">--> <!--<property name="mappings">--> <!--<props>--> <!--<prop key="/test">testHandler</prop>--> <!--</props>--> <!--</property>--> <!--</bean>--> <!--<bean id="testHandler" class="com.imooc.handler.MyHandler"></bean>--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
上面是springmvc.xml
同学配置视图解析器了么?建议在springmvc.xml中添加如下代码,如果问题没有解决,可以将springmvc.xml中的代码粘贴上来,方便我们具有针对性的为你解答,祝学习愉快~
<!--配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--配置前缀--> <property name="prefix" value="/"></property> <!--配置后缀--> <property name="suffix" value=".jsp"></property> </bean>
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星