本文将介绍 SpringMVC 中的常见错误及其解决方法。
一、访问 404
1. 错误
项目代码正常,启动后也没有报错,但访问返回 404 。
2. 解决方法
依次打开 Project Structure - Artifacts - 项目 - Output Layout
,在 WEB-INF 下新建文件夹 lib,添加所有依赖。
二、HTML 作视图时无法找到
1. 错误
在 Controller 中指定要跳转的视图为 html:
1 2 3 4 5 6 7 8
| public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("/hello.html"); return modelAndView; } }
|
结果在访问时报 404,控制台提示找不到 mapping:
但直接在浏览器中访问 html 又可以访问。
2. 解决方法
在 web.xml 中增加配置信息如下:
1 2 3 4
| <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
|
3. 详解
即当请求对应的资源为 html 时,使用默认的 Serlet 处理(而非 DispatcherServlet)。
具体请看:
我是如何一步步解决问题 让Spring MVC返回HTML类型的视图_CSDN
三、post 请求乱码问题
解决方法是修改 web.xml,增加信息如下:
1 2 3 4 5 6 7 8 9 10 11 12
| <filter> <filter-name>CharacterEncodingFilter</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> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
|
参考