2009年5月25日星期一

JSP页面用EL表达的问题解决

今天开始进行制造,学习写EL式。

原本 JSP 中沒有使用 EL,後來改成利用 EL 的方式。
發現 Tomcat 並不會跑修改後的結果。
原因在於在 JSP 頁中直接寫 EL 是 JSP2.0/servlet 2.4以後的版本,所以 web.xml 中必須宣告為

<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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

但是修改後,跑更改成 EL 後的程式。
發現結果還是一樣,沒有作用。

試了好久才知道,原來 jsp 必須再重新 compiler 才會有作用。
也就是說,再把檔案故意修改一下再存檔,重新跑就行了。

原因在於 JSP 檔案支援 EL 的做法是在 compiler 的時候自動翻譯的。
試了好久,找了好多資料都沒提到。

其实原作者猪头(最近猪肉价格下降......),浏览器关闭后重新载入就好了.......

附:

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.web.xml中,是否停用了jsp表达式语言
<jsp-property-group>
<url-pattern>/legacy/*.jsp
<el-ignored>true
</jsp-property-group>

这种情况的解决方法就是把true改为false

3.页面停用jsp表达式语言
<%@ page isELEnabled ="false"%>

解决方法:改为<%@ page isELEnabled ="true"%>

没有评论:

发表评论