EL表达式在jsp中有很好的应用,可以大大简化我们在jsp上的操作代码。最近在学习Struts时, EL表达式却罢工了,特别简单的几句代码,但就是不起作用。错误如下:
使用EL表达式来显示页面错误信息时,无法获取request中的返回信息。刚开始还以为是没有引入标签库,后来仔细想,这个貌似不需要引入什么标签库就可以使用啊(是在引入库之后仍然不起作用后才想明白的。。)。这是为什么呢?原来跟web.xml文件中引入的dtd版本有关系,本次引入的是2.5版本的,而2.5版本默认情况下是对EL表达式的支持是关闭的。解决方案如下:
方法一:
在jsp页中加入如下设置,设置开启EL表达式:
<%@ page isELIgnored="false" %>方法二:
虽然方法一可以实现对EL表达式的支持,但是如果jsp页面多的 话,就需要在每一个页面进行设置,增加很大的重复工作量。另一种方法是,修改xml文件,将2.5版本换成2.4版本,这样实现统一的设置管理,减少代码量。
方法三:
更换tomcat版本,之前一直使用的是5.x的版本,后来再次遇到该问题,发现该版本的tomcat并不支持EL表达式,可能有冲突或者其他缘故。然后更换到7.x版本,jsp页面显示正常。
最后的运行效果如下:
EL表达式和jstl是jsp页面数据显示常用方法,灵活掌握可以减少jsp的工作量,而且应用方便灵活。通过此次问题,对它的掌握进一步加深。当然,真正的灵活操作,还需要再今后的学习中不断的学习,不断的动手 实验。