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文件头上添加如下:

<%@ page isELIgnored="false" %>

方案2,在web.xml文件中如下定义:

<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之上的版本..

<?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了...

posted on 2015-10-29 21:41  蓝萝卜blu  阅读(3179)  评论(0编辑  收藏

导航