解決jsp開發(fā)中不支持EL問題
更新時間:2009年04月27日 16:01:25 作者:
今天遇到了一個莫名其妙的問題,就是在使用MyEclipse5.5或6.0時遇上了解析不到EL表達式的問題。經過好幾個小時的琢磨終于發(fā)現了,給大家share一下
問題就出在建Web Project的時候web.xml聲明上。
web.xml聲明部分一般分為如下版本的xsd,
web-app_2_2.dtd
web-app_2_3.dtd
web-app_2_4.xsd
web-app_2_5.xsd
更詳細的列出各版本web.xml聲明部分吧,如下:
web-app_2_2.dtd
<?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">
注意!! 其中servlets 2.4(我沒記錯的話JSP 2.0出來之后的第一個版本),這個版本的isELIgnored默認設置為false。所以使用web.xml里用web-app_2_4.xsd聲明的時候在JSP頁面不用特意聲明。 servlets 2.4EL可以直接使用。
而其它的不行必須手工申明.
確定web.xml里的xsd版本之后(如果不是servlets 2.4)一定要在JSP的聲明(<%@page %>)部分加一行,如下:
<%@ page isELIgnored="false" %>
或者
設置整個項目使用el表達式,需要在web.xml中加上 (控制一個項目)
<jsp-config>
<jsp-property-group>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>
這樣設為false才能解析EL表達式。
還用一個最簡單的解決方法是,直接在web.xml中將servlets 2.4xsd的引用替換你現在的。即用以下引用替換.
<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.xml聲明部分一般分為如下版本的xsd,
web-app_2_2.dtd
web-app_2_3.dtd
web-app_2_4.xsd
web-app_2_5.xsd
更詳細的列出各版本web.xml聲明部分吧,如下:
web-app_2_2.dtd
<?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">
注意!! 其中servlets 2.4(我沒記錯的話JSP 2.0出來之后的第一個版本),這個版本的isELIgnored默認設置為false。所以使用web.xml里用web-app_2_4.xsd聲明的時候在JSP頁面不用特意聲明。 servlets 2.4EL可以直接使用。
而其它的不行必須手工申明.
確定web.xml里的xsd版本之后(如果不是servlets 2.4)一定要在JSP的聲明(<%@page %>)部分加一行,如下:
<%@ page isELIgnored="false" %>
或者
設置整個項目使用el表達式,需要在web.xml中加上 (控制一個項目)
<jsp-config>
<jsp-property-group>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>
這樣設為false才能解析EL表達式。
還用一個最簡單的解決方法是,直接在web.xml中將servlets 2.4xsd的引用替換你現在的。即用以下引用替換.
<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">
相關文章
JSP開發(fā)之hibernate之單向多對一關聯的實例
這篇文章主要介紹了JSP開發(fā)之hibernate之單向多對一關聯的實例的相關資料,希望通過本文能幫助到大家,讓大家實現這樣的功能,需要的朋友可以參考下2017-09-09