我们用idea开发java web时常常会遇到jsp的EL表达式不起作用的问题。造成的该问题的因素的可能有很多,

  1.有的是因为web.xml中的web-app只配置了。。。。。。。。。。,而没有在里面配置xlmn,xsi等内容,2.还有的可能是web-app的配置的version的版本过低,导致不支持EL表达式

  3.也有的是没有导入相应的jstl的依赖包。。。。

  统一解决方案是:

  1.确保maven中添加了以下依赖:

  2.尽量将web-app的version版本设成最高,(例如2.3版本的web-app的?true默认设置就是true,忽略EL表达式,idea默认创建的jsp的格式是:

  ?"http://java.sun.com/dtd/web-app_2_3.dtd" >

  ? Archetype Created Web Application

  我们需要将其改成如下格式)

  目前我的是2.5的版本,它默认是支持jsp的EL表达式的。并且将web-app的配置写完整:我的文件如下:

  3.单个jsp设置其是否忽略EL表达式:(false表示支持,true表示不支持)

  4.全局配置jsp支持EL表达式:

  网上说在web.xml中加入以下代码即可:

  ? ? ? ?

  ? ? ? ? ? ? *

  ? ? ? ? ? ? false

  ? ? ? ?

  但我测试,它并没有效果,无论 false是false,还是true,它最终都是false的效果,并且 *.*代码这样写还会报错,说路径无效,将其改成 ? *.*就可以了,但是不能解决问题啊,也许是高版本的web-app默认支持EL表达式,且不允许你全局更改其jsp的EL的设置吧。

  5.如果还不行,那就是缓存的因素作怪了。尝试在maven的build节点下添加maven依赖:

  点击右侧的maven project,并执行clean maven,install maven操作,清楚缓存:

  彻底解决IDEA编写jsp时EL表达式不起作用的问题_java

  再点击rebuild project重构项目?,然后打开chrome,按shift+ctrl+delete,清楚浏览器的缓存,经过彻底的缓存清理后,启动项目,检测EL表达式是否生效:检测代码是:index.jsp:

  如果页面显示yes,则支持,啥都没有,则不支持。