JSP页面不支持EL表达式的解决方法
JSP页面不支持EL表达式的问题就出在新建项目时web.xml的声明上。
web.xml声明部分一般分为如下版本的xsd:
- web-app_2_2.xsd
 - web-app_2_3.xsd
 - web-app_2_4.xsd
 - web-app_2_5.xsd
 
web-app_2_2.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/dtd/web-app_2_2.dtd">
web-app_2_3.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
web-app_2_4.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
web-app_2_5.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
在确定web.xml里的xsd版本之后一定要在JSP页面的头部声明(<%@page %>)部分加一行,如下:
<%@ page isELIgnored="false" %>
设为false才能解析EL表达式。
经过各版本的test之后,注意!!其中Servlets 2.4(JSP 2.0出来之后的第一个版本),这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明。
下面是官方Documention中isELIgnored Attribute的详解:

文章转自:http://www.iteye.com/topic/155354
经过测试,以上修改web.xml头为2.4的方式在Eclipse中用tomcat插件运行并不生效,而打包成war包部署到tomcat中是可行的,而在每个页面上增加page属性开启el表达式支持对于两种部署都可行。
下面这种方式是直接web.xml中增加对每个页面开启el表达式,配置如下(同样,在Eclipse的tomcat插件中是不可行的,部署到Tomcat中是可行的):
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>
详细配置:
<jsp-config>
<jsp-property-group>
<description>指定JSP文件的配置属性</description>
<display-name>jspConfiguration</display-name>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
<page-encoding>utf-8</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
</jsp-property-group>
<jsp-property-group>
<description>指定htm文件的配置属性</description>
<display-name>jspConfiguration</display-name>
<url-pattern>*.htm</url-pattern>
<el-ignored>false</el-ignored>
<page-encoding>utf-8</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
</jsp-property-group>
<jsp-property-group>
<description>指定html文件的配置属性</description>
<display-name>jspConfiguration</display-name>
<url-pattern>*.html</url-pattern>
<el-ignored>false</el-ignored>
<page-encoding>utf-8</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
</jsp-property-group>
</jsp-config>
属性说明:
<description>:设定的说明 
<display-name>:设定名称 
<url-pattern>:设定值所影响的范围,如:/CH2或/*.jsp
<el-ignored>:若为true,表示不支持EL语法 
<scripting-invalid>:若为true,表示不支持<% scripting %>语法 
<page-encoding>:设定JSP网页的编码 
<include-prelude>:设置JSP网页的抬头,扩展名为.jspf
<include-coda>:设置JSP网页的结尾,扩展名为.jspf
JSP页面不支持EL表达式的解决方法的更多相关文章
- JSP页面无法识别EL表达式
		
昨天一直纠结一个问题,JSP页面无法获取${user}的值,一直显示的是${user},今天解决了,原来是JSP页面无法识别EL表达式. 我的web.xml的声明如下: <!DOCTYPE we ...
 - jsp页面无法解析EL表达式问题
		
Servlet版本的问题.原来Servlet中可以设定是否解析EL表达式,只有2.4版本的Servlet默认是解析EL表达式的,而其他版本是默认不解析EL表达式.于是把web.xml中使用的2.5版本 ...
 - jsp页面无法识别el表达式的解决方案
		
今天在写一个springmvc的小demo时,碰到一个问题,在jsp页面中书写为${user.username}的表达式语言,在浏览器页面中仍然显示为${user.username},说明jsp根本不 ...
 - jsp页面无法解析EL表达式
		
从eclipse迁移到idea,真是各种被坑. 今天遇到的jsp无法解析EL,页面直接就显示${xxx}好坑爹 Root cause:idea生成的web.xml 的web-app版本居然是2.3,2 ...
 - JSP页面+请求转发+EL表达式
		
1) JSP全称Java Server Pages,顾名思义就是运行在java服务器中的页面,也就是在我们JavaWeb中的动态页面,其本质就是一个Servlet.2) 其本身是一个动态网页技术标准, ...
 - jsp页面中的EL表达式不被解析的问题
		
原因:问题在web.xml配置文件上,web.xml声明部分一般分为如下版本的xsd, web-app_2_2.xsd web-app_2_3.xsd web-app_2_4.xsd web-app_ ...
 - JSP页面中的EL表达式介绍
		
1.什么是EL? Expression Language(表达式语言) 2.EL的功能 替代JSP页面中数据访问时的复杂编码. 3.EL的特点 自动转换类型 使用简单 4.EL表达式的语法 ${EL ...
 - jsp页面 如何通过el表达式获取request属性值
		
1. 我在一个超连接后加个参数如: http://localhost:8080/test/testjstl.jsp?pid=001 此时在jsp页面中,获取jsp传过来的pid的参数值 ...
 - jsp页面中的EL表达式不被解析org.apache.jasper.JasperException: Unable to convert string [${item.createtime}]
		
https://m.imooc.com/qadetail/277572 web.xml的版本是不是2.3, 如果是2.3,在jsp页面开头添加<%@ page isELIgnored=" ...
 
随机推荐
- 触发器deleted 表和 inserted 表详解
			
摘要:触发器语句中使用了两种特殊的表:deleted 表和 inserted 表. create trigger updateDeleteTimeon userfor updateasbegin u ...
 - Asp.Net 设计模式 之 “简单工厂”模式
			
主要思想: public static Operation CreateFactory(string ope) { //实例化空父类,让父类指向子类 ...
 - Farseer.net轻量级ORM开源框架说明及链接索引
			
项目简介 基于.net framework 4 开发. 基于Lambda表达式快速上手的ORM框架. 参考Entity Framework的调用方式. 基于Database First模式. POCO ...
 - 【译】x86程序员手册37-第10章 初始化
			
Chapter 10 Initialization 第10章 初始化 After a signal on the RESET pin, certain registers of the 80386 a ...
 - 微擎we7模块和模板安装方法
			
2017年06月08日 09:26:55 源码学习分享 阅读数:15643 标签: we7 更多 个人分类: 微擎we7 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
 - PHP 之PHP + phantomJS实现网站截屏
			
php代码: exec("G:/phpstudy/WWW/destoon/api/a/cache/web/phantomjs.exe ./get.js http://www.baidu.co ...
 - chomp成功的返回值是1,chomp对参数去回车符后会改变参数的值,是传入又是传出参数。$arrow_notation = ( chomp( $unpackeing = <STDIN>) );
			
44 my $unpackeing; 45 my $arrow_notation = ''; 46 print "Enter name to query, enter ex ...
 - ie兼容的解决办法,6,7、8、9、10
			
在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html> ...
 - PC端样式重置
			
html{font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;-ms-text-size ...
 - Nginx出现403 forbidden (13: Permission denied)报错的四种原因
			
一.由于php-fpm启动用户和nginx工作用户不一致所致 php-fpm启动用户配置位置 nginx工作用户配置位置 二.不存在在文件,可能是文件路径有误,可以查看nginx错误日志来判断 三.缺 ...