在xx-servlet.xml的配置文件中,通常:
<!-- 视图解析 -->
<bean id = "defaultViewResolver" class= "org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name = "prefix" value= "/WEB-INF/jsp/" />
<property name = "suffix" value= ".jsp" />
</bean >
是视图解析的配置
这里需要注意一个细微的问题,配置前缀时,若是
value="/WEB-INF/jsp/"
不慎写成
value="WEB-INF/jsp/"
仅仅是一个“/”的区别,就会导致正常的视图解析出现问题。
在下面的例子中,正常情况下localhost:8080/xx/test/page1将会解析到如下WEB-INF/jsp/test/page1.jsp,但是若是少了这个“/”,将会报404错误,spring将会把请求解析到xx/test/WEB-INF/jsp/test/page1.jsp上去,因此报出404的错误。
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping("/page1")
public String lesson1(Model model) {
model.addAttribute("m", 1);
model.addAttribute("n", 2);
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
model.addAttribute("list", list);
List<City> cityList = new ArrayList<City>();
cityList.add(new City(1L, "无锡"));
cityList.add(new City(2L, "苏州"));
cityList.add(new City(3L, "常州"));
model.addAttribute("cityList", cityList);
return "test/page1";
}
}
!
这个问题非常细小,但是对于初学spring的同学来说还是有一定的杀伤的!特别是好不容易配置完了各种配置文件,却无法看到正常的页面,还是很令人抓狂的,结果。。其实只是很小的一个问题。
ps:具体的原因查看完源码之后来补上