網友一:jsp中EL表達式不能顯示的解決方法
在JSP2.0中,增加了EL語言,可以通過EL語言,可以通過EL語言,實作擷取資料,進一步将scriptlet
代碼從JSP頁面中分離出來.
EL語言給大家帶來了友善,但有時,也會遇到EL表達式不能顯示的情況,下面,我将列舉幾種EL表達式不
能顯示的情況及解決方案:
1.WEB-INF/web.xml,web應用的部署描述檔案引用的是servlet規範的2.3版本或更早的版本(即jsp1.2
或更早),則jsp2.0表達式語言自動在web應用中停用,注意裡面的version屬性應為2.4及以上版本.
如果是2.3版本,則xml指令和文檔類型定義如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
如果是2.4版本,則為:
<?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">
2.web.xml中,是否停用了jsp表達式語言
<jsp-config>
<jsp-property-group>
<url-pattern>/legacy/*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
這種情況的解決方法就是把<el-ignored>true</el-ignored>改為<el-ignored>false</el-ignored>
3.頁面停用jsp表達式語言
<%@ page isELEnabled ="false"%>
解決方法:改為<%@ page isELEnabled ="true"%>
網友二:要想使用EL文法的朋友請進,關于使用EL文法的問題綜合解決!
我找到問題的所在了,解決辦法如下:
1.Tomcat必須使用5.0以上版本,才能支援JSP2.0和Servlet2.4規範。到\WEB-INF下,修改web.xml
檔案,改為servler2.4的格式(2.3和2.4的文法不同),如下
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
2.在使用EL文法jsp檔案頭添加<%@ page isELIgnored="false" %>,如為true表示EL文法按
照字元處理;
3.如果覺得每個檔案改麻煩,則進一步修改web.xml檔案,添加
<jsp-config>
<jsp-property-group>
<url-pattern>/*.jsp</url-pattern>
<el-ignored>false</el-ignored>
...
</jsp-property-group>
</jsp-config>
其中<url-pattern>表示設定值影響範圍,<el-ignored>含義同第二條
大家試試,EL文法是不是可以正常顯示了!
//在此,也順便說一下标簽庫的設定.如以前我們可以在web.xml裡使用<taglib></taglib>直接配置标簽庫,不過現在好象不行,解釋如下:
在tomcat中配置自定義标簽的時候,會遇到一個問題
web.xml中,有兩個版本的DTD認證,一個是java1.2版本的,一個是2.0版本的,是以就形成了不同版本的時候作出的配置不一樣
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
是2.0版本的
是以在web.xml中添加自己的taglib的時候要包含在 <jsp-config> </jsp-config>中間才行.
<jsp-config>
<taglib>
<taglib-uri>/date </taglib-uri>
<taglib-location>/WEB-INF/date.tld </taglib-location>
</taglib>
</jsp-config>