404的错误都是资源路径错误,经过查找,发现是在SpringMVC配置文件中定义视图解析器时前缀路径没有以“/”开头:
即
<property name="prefix" value="WEB-INF/jsp/"/>
应该在WEB前加上“/”,如下:
<property name="prefix" value="/WEB-INF/jsp/"/>
这里涉及一个知识点:
访问地址以“/”开头与非“/”开头的区别,我们都知道文件资源路径都由参考路径+相对路径组成(非绝对路径的情况),在这种相对路径访问的情况下:
相对路径如果不以“/”开头就会报错,最终访问的路径会出现重复的路径名,所以一般都选用以“/”开头,这时候相对路径要加上你的项目名称,一般可以用以下两种方法获得你的项目名称:
1)用EL表达式${pageContext.request.contextPath},如下示例:
<a href = "${pageContext.request.contextPath}/test/some.do">访问链接加/</a><br/>
2)使用base标签,那么所有不以“/”开头的相对路径都会默认被加上该base路径,示例如下:
<%
String basePath = request.getScheme() +
"://"+request.getServerName +
":" + request.getServerPort()+
request.getContextPath()+"/";
%>
<base href = “<%=basePath%>”/>