2012-05-21 70 views
0

我使用WebSphere 8和RAD 8和這個小腳本輸出正確的值:EL變量不工作在爲8

<%= ansokanInfo.getPSystem() %>

但使用EL它輸出什麼:

${ansokanInfo.PSystem}

我可以在${}之間寫任何東西,它不會渲染。我究竟做錯了什麼?應該做些什麼來啓用EL表達式?這不工作之一:

<c:out value="${ansokanInfo.PSystem}" />

但這工作:

<c:forEach var="i" begin="1" end="5" >  <c:out value="${i}" /> </c:forEach> 

我的web.xml開始是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

回答

2

小腳本和EL不共享相同的變量範圍。 Scriptlet變量在JSP主體中聲明,而EL變量應該設置爲頁面,請求,會話或應用程序範圍的屬性。

因此,要使EL中的ansokanInfo可用,您需要將它設置在其中一個範圍內。假設它代表請求範圍的數據,這樣做的:

request.setAttribute("ansokanInfo", ansokanInfo); 

你可以這個變量有史以來的第一EL評估前做的小腳本。但更明智的做法是在預處理servlet中這樣做。

學習和理解的概念正確,檢查強制性科目我們的wiki頁面: