天天看點

jsp中EL表達式不能顯示的解決方法

網友一: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>