EL表达式在jsp中失效应该如何处理
的有关信息介绍如下:
EL表达式使得在jsp中可以轻松的获取后台的数据,既简洁有方便,但有时候在项目中的jsp页面里写的EL表达式原封不动的显示,没有展示对应的值。让我们的感觉就是EL表达式没有解析,jsp根本就不认识EL表达式似的。出现这样的问题可能是你使用web版本过低,因为低于2.4版本默认是忽略EL表达式的,需要手动页面上声明才可以。
为了演示测试效果,首先新建一个web工程,特地选择版本低于2.4的。如图所示,这里选择的是2.3的版本
后台代码使用spring的mvc
@RequestMapping(value = "/elTest", method = RequestMethod.GET)
public String elTest(HttpServletRequest request, Model model){
model.addAttribute("testValue", "Hello, I am a cat!");
return "elTest";
}
在model中放入一个testValue,用于后面jsp中EL表达式测试使用
jsp页面中添加如下代码:
EL表达式测试
${testValue}
然后启动web项目,然后打开浏览器访问刚刚的jsp页面,如图所示,直接显示的是${testValue},EL表达式没有解析,没有生效
下面来说明下如何解决以上问题,在jsp页面中,添加isELIgnored="false",意思是是否忽略EL表达式,值填false表示不忽略。
再次刷新页面,如图所示,这次则把后台设置的数据显示到页面上了。说明这次的EL表达式得到了正确的解析了。
通过isELIgnored="false"方式的确可以解决以上的问题,但每个页面都需要添加。其实在2.4版本以及更高的版本,默认就是true,不需要再手动设置了。这里我们将版本更新到3.0,然后去掉jsp页面中的isELIgnored="false"语句,然后重启服务器,刷新页面,同样EL表达式正常解析。



