错误情况
在使用SSM构建项目时,出现如下错误

console控制台错误提示为
WARN 2019-05-20 15:44:29,076 org.springframework.web.servlet.DispatcherServlet: No mapping found for HTTP request with URI [/SongSSM/WEB-INF/page/login.html] in DispatcherServlet with name 'springDispatcherServlet'
出现错误原因是因为在SpringDispatcherServlet中没有找到指定的路径,在spting-mvc.xml配置文件中配置的试图解析错误。
错误原因
spring-MVC版本为4.0,查看错误之前的视图解析配置如图,

在项目目录下

在spring-mvc.xml中配置的是识别.html 的文件,而在项目目录中hello为.jsp文件,导致出现url错误,将spring-mvc.xml配置文件中的配置html.jsp两个视图解析器。
解决方案
spring-mvc.xml配置文件中的配置html.jsp两个视图解析器
新建一个包,解析HTML路径
package com.song.main;
import java.io.File;
import java.util.Locale;
import org.springframework.web.servlet.view.InternalResourceView;
/**
* @author hui
* @date 创建时间:2018年5月9日 下午5:26:55 吴清辉新建
* @version 1.0
**/
public class HtmlResourceView extends InternalResourceView {
@Override
public boolean checkResource(Locale locale) {
File file = new File(this.getServletContext().getRealPath("/") + getUrl());
return file.exists();// 判断该页面是否存在
}
}
在spring-mvc中加入如下配置
<!-- 定义HTML文件的位置 -->
<bean id="htmlviewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="com.song.main.HtmlResourceView"/><!-- 改成你自己的第一步新建的解析类路径 -->
<property name="order" value="0" />
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/page/" />
<property name="suffix" value=".html" />
</bean>
<!-- 定义JSP文件的位置 -->
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="order" value="1" />
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/page/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
</bean>
测试结果
配置好后进行测试
跳转视图:login.html

跳转视图:hello.jsp

本文围绕SSM项目展开,在使用SSM构建项目时,控制台提示找不到指定路径,原因是SpringDispatcherServlet中视图解析配置错误,spring - mvc.xml配置识别.html文件,而项目中有.jsp文件。解决方案是在spring - mvc.xml配置文件中配置html和jsp两个视图解析器,测试可正常跳转login.html和hello.jsp。
814

被折叠的 条评论
为什么被折叠?



