出现场景:
控制台不报错,jsp页面http响应500,但页面一直在转圈,却没显示出来我任何jstl使用有误
原因:
1.仔细检查JSP页面中的jstl获取容器中参数的表达式
eg:
//JAVA
Class Test(){
private String userName;
....
}
....
//Controller
ModelAndView mav = new ModelAndView("..")
Test test = new Test()
test.setUserName("test");
mav.addObject("test", test);
....
//JSP
${test.username} /** ❌ 此情况服务器不报错但jsp:500 ********/
${test.userName} /** ✅ ********/
2.tomcat版本不同jstl可能不同
我遇到的是本地(tomcat9)在jsp中用${list.size()}取list的长度.本地测试没问题,但将其发布到服务器(tomcat6)时,访问页面,无报错日志但jsp页面状态500,具体原因就是获取list长度方式有误导致.
//Controller
将查出来的集合放进容器中(list)
//JSP tomcat 9
${list.size()}
//JSP tomcat 6
${fn:length(list)}