您的位置:首页 > Web前端 > JavaScript

maven项目下jsp文件中el表达式失效问题

2015-10-29 21:41 696 查看
本来是为了写个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了...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: