el表达式不起作用的解决方案

来源:互联网 发布:淘宝需要交保证金吗 编辑:程序博客网 时间:2024/06/06 03:58

 今天晚上学习SSH,发现一个el表达式在JSP2.0中不起作用的问题。反复调试多次,发现是web.xml中出了问题。猜测是版本的问题,但只知道了如何修改,不知道为什么那样修改。停止工作后看别人博客,很幸运的发现了原因。

tomcat5.0的版本, 使用了低版本,只求稳定。

web.xml

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  5.     version="2.4">

2.4版本默认启用el表达式,如果使用2.5版本,默认el表达式是关闭的

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

那么对应2.5的web.xml -->  jsp页面里应该增加<%@ page isELIgnored="false"%>

一句话,凡是部署描述文件遵循Servlet2.4规范的WEB应用,EL表达式的计算默认是启用的,而未遵循的,则EL表达式的计算默认是禁用的。

所以解决方案还可以是:将web.xml中的DTD(文档类型定义)改问2.4的版本。(这也是我一开始自己琢磨出来的解决方案,hoho)