logo头像

学习java,共同进步

Maven项目使用不了EL表达式

本文于774天之前发表,文中内容可能已经过时。

Maven项目里面Jsp使用EL表达式不生效

本来是为了写个springmvc的小demo,雏形搭建起来后想起来做成maven的好了,就重新建的maven项目,坑就从这里开始了…

maven创建web项目默认使用的是web 2.3版本,web.xml文件头中也是2.3的版本..说实话之前没怎么用maven创建过项目,后来觉得maven项目看源码太方便了才更偏向于用maven的,所以这里也根本没在意..引入的javax-servlet-api 2.5的版本.然后发现jsp文件中的el表达式都原样输出了,看起来el表达式根本没解析..这就怪了,还好之前有个非maven创建的一模一样的demo,运行一遍无任何问题..基本锁定maven问题,而差异化的根源也确定在了web 2.3这个版本上..

然后百度,基本是这样的答案:2.5之前web.xml文件中的头定义中,el表达式默认是忽略不解析的,故需要显示声明解析el表达式,3种方案:

  • 方案1,在jsp文件头上添加如下:

    1
    <%@ page isELIgnored="false" %>
  • 方案2,在web.xml文件中如下定义:

    1
    2
    3
    4
    5
    6
    7
    <jsp-config>
    <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
    <el-ignored>false</el-ignored>
    <scripting-invalid>true</scripting-invalid>
    </jsp-property-group>
    </jsp-config>
  • 方案3,改变web.xml中的头为2.5之上的版本..

    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

这3种方案都是确实有效的,我改了web.xml的头为3.0的版本,再次运行ok了…

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者