此前开发用的比较多Ajax进行异步交互即数据的显示,最近使用jsp页面进行页面与服务器交互时突然一个很怪的问题,强大的 ${} 失效了,读不出数据,由于使用的是springMVC,所以自己使用spring的test模块进行测试了请求与数据的返回是否有效,经过测试请求后数据可以通过request请求域获得(关于如何使用spring的test模块进行模拟请求进行测试spring的程序,关注自己的另一个博客有详细说明)。那么就可以断定是el表达式有问题。解决方法及思路:

开发环境:servlet是3.1.0、jdk1.7、tomcat 7

0.检查jstl的jar或者说依赖(正确)是否导入

我的依赖:

    <dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>

是没有问题的

1.检查是否在jsp页面上引入标签

经过检查,确实引入:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

2.检查<web-app>的约束版本

我的如下:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
经过查阅资料:

这里也拿过来别人查阅官方文档后翻译的:
如果isELIgnored是true,当EL表达式出现在文本或者标签属性时被忽略。如果是false,则EL表达式通过容器来决定如何解析
,只有属性有返回表达式被设置为true或者表达式是一个延迟表达式时不解析。     isELIgnored的值取决于web应用部署描述符的版本。使用Servlet2.4的描述符的JSP页面默认是解析EL表达式,即表达式有效。这默认提供了大部分应用想要的情况。而使用Servlet2.3或者更早的描述符的JSP页面默认是忽略EL表达式的,即不解析EL表达式,这样就提供了向后兼容性。

所以说,两种解决方法:

解决


01.在每个jsp页面增加声明

声明:
<%@page isELIgnored="false" %>
经过测试可以使用EL表达式了,问题解决
但是缺陷就是每个页面都要加,累死

02.更改<web-app>的约束版本



如官文档所说,2.3及以下版本isELIgonred是true的,2.4及以上的就默认是false,所以根据需要修改
我改成:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
这样就没有问题了,也可使用EL

EL表达式无效的解决方法相关推荐

  1. Maven项目配置EL表达式原样输出解决方法

    Maven项目配置EL表达式原样输出解决方法 参考文章: (1)Maven项目配置EL表达式原样输出解决方法 (2)https://www.cnblogs.com/d191/p/11689610.ht ...

  2. 关于Tomcat5.5中EL表达式无效的解决办法

    问题: 在Tomcat5.5中,JSP页中使用EL表达式输出信息,例如: <%@ page language="java" import="java.util.*& ...

  3. mawen启动项目css样式失效问题解决方法 EL表达式无效

    把web.xml中的代码改成如下代码 <?xml version="1.0" encoding="UTF-8"?> <web-app xmln ...

  4. cocos2d-js中listView的jumpToBottom()方法无效的解决方法

    cocos2d-js中listView的jumpToBottom()方法无效的解决方法 参考文章: (1)cocos2d-js中listView的jumpToBottom()方法无效的解决方法 (2) ...

  5. QWidget子窗口中setStyleSheet无效,解决方法

    QWidget子窗口中setStyleSheet无效,解决方法 参考文章: (1)QWidget子窗口中setStyleSheet无效,解决方法 (2)https://www.cnblogs.com/ ...

  6. IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法

    IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法 参考文章: (1)IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法 (2) ...

  7. 关于Jupyter Notebook默认起始目录设置无效的解决方法

    关于Jupyter Notebook默认起始目录设置无效的解决方法 参考文章: (1)关于Jupyter Notebook默认起始目录设置无效的解决方法 (2)https://www.cnblogs. ...

  8. 表格Table宽度设置无效的解决方法

    表格Table宽度设置无效的解决方法 参考文章: (1)表格Table宽度设置无效的解决方法 (2)https://www.cnblogs.com/sherryweb/p/11659848.html ...

  9. php session不生效_php验证session无效的解决方法

    本文实例讲述了php验证session无效的解决方法.分享给大家供大家参考.具体方法如下: 一.问题 今天在配置 apache+php环境时折腾了很久很久,后来成功了但发现验证码图片可以生成,在登录验 ...

最新文章

  1. 0709 C语言常见误区----------函数指针问题
  2. JSON 之父新作,JavaScript “葵花宝典”参悟 JS 之道
  3. C++默认参数注意事项
  4. Spring boot错误处理原理
  5. map的用法-HD 1029Ignatius and the Princess IV
  6. CUDA Libraries简介
  7. python字符串补空格输出_python格式化打印字符串
  8. golang mysql curd_Go 语言操作 MySQL 之 CURD 操作
  9. 缓存服务器在Linux下的运用
  10. Linux poll
  11. 免费体验手机版MSN2.0
  12. 用JS判断浏览器是否是IE9以下
  13. 关于硬件批量贴片焊接流程
  14. OTU/ASV/Feature tabel 表格 过滤 相对丰度 微生物
  15. Html 和 CSS笔记
  16. 说说你对AQS的理解?
  17. 超级详细Window10安装Java JDK 和配置开发环境
  18. python中的pai怎么打_python 调用win32pai 操作cmd的方法
  19. MySQL导入Excel表格
  20. 小写数字转换成大写数字

热门文章

  1. mysql中dual表
  2. Flutter 使用SnackBar
  3. layui下拉框被弹框遮住问题解决、layui下拉框因弹框显示不全解决方案
  4. python--memcached---activemq
  5. MongoDB分布式集群(一)
  6. h264码流及h265码流结构分析,NAL头类型分析
  7. React 实现计时器
  8. 谷歌开发者工具设置语言
  9. Mob统计分析功能详解 精细化运营必备
  10. VuxUI使用历程:【003】Vux组件使用之FormPreview组件、X-input组件、Loading 组件