今天在将以前写的一个网页项目重新配置到Maven中来时,发现EL表达式失去了作用,本来以为可能是jar包的缺失之类的原因引起的,但是经过检查发现并不是。
经过检查发现:由Maven配置的web项目中web.xml中的版本为2.3,而经过搜索发现,2.5之前的web.xml中EL表达式默认是不解析的,所以在2.5之前的web项目中,需要显式的声明解析EL表达式。
解决方法有两种:
1. 显示的声明解析EL表达式:在jsp文件中声明<%@ page isELIgnored="false">
,即可在该网页中使用EL表达式;
但是上面这种方法的缺点在于只能作用于单独的一个jsp文件上,如果有很多个jsp页面,我们需要一个一个进行设置,很繁琐,第二种方法可以解决这种问题。(当然我们也可以通过include对所有的jsp文件导入一个公共的taglibs文件,修改这个文件即可)
2. 直接升级web项目的版本到2.5以上。更改web.xml的头文件,将其版本升到2.5以上即可,此后,该项目中的所有jsp文件都会默认解析EL表达式。