今天遇到了一個莫名其妙的問題,就是在使用myeclipse5.5或6.0時遇上了解析不到el表達式的問題。經過好幾個小時的琢磨終于發現了,給大家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聲明部分吧,如下:
<?xml version="1.0" encoding="utf-8"?>
<!doctype web-app public "-//sun microsystems, inc.//dtd web application 2.2//en"
web-app_2_3.xsd
<!doctype web-app public "-//sun microsystems, inc.//dtd web application 2.3//en"
注意!! 其中servlets 2.4(我沒記錯的話jsp 2.0出來之後的第一個版本),這個版本的iselignored預設設定為false。是以使用web.xml裡用web-app_2_4.xsd聲明的時候在jsp頁面不用特意聲明。 servlets 2.4el可以直接使用。
而其它的不行必須手工申明.
<%@ 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的引用替換你現在的。即用以下引用替換.