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

JSP页面EL表达式无效的问题

2015-06-24 20:49 716 查看

以前用WSAD wizard做的,都可以在JSP页面中解析到EL表达式,当然前提是JSP2.0的情况下。

今天遇到了一个莫名其妙的问题。刚下载Eclipse3.3+MyEclipse6.0体验的过程中,遇上了解析不到EL表达式的问题。经过好几个小时的琢磨终于发现了,给大家share一下:

问题就出在建Web Project的时候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.xml声明部分吧,如下:

web-app_2_2.xsd

<?xml version="1.0" encoding="UTF-8"?>
02. <!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"?>
02. <!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"?>
02. <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"?>
02. <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的详解:

The isELIgnored Attribute

• Format

– <%@ page isELIgnored="false" %>

– <%@ page isELIgnored="true" %>

Purpose

– To control whether the JSP 2.0 Expression Language

(EL) is ignored (true) or evaluated normally (false).

• Notes

– If your web.xml specifies servlets 2.3 (corresponding to

JSP 1.2) or earlier, the default is true

• But it is still legal to change the default—you are permitted

to use this attribute in a JSP-2.0-compliant server

regardless of the web.xml version.

– If your web.xml specifies servlets 2.4 (corresponding to

JSP 2.0) or earlier, the default is false

source:http://gimgen1026.iteye.com/blog/155354
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: