2011-09-10 29 views
5

İki sorunum var. Birincisi JSP kullanıyorum ve çözemediğim. İkincisi, garip bir davranış alıyorum. "WEB-INF/main.jsp" in

benim servlet'dir

req.setAttribute("test", "SARASA"); 
req.getRequestDispatcher("WEB-INF/main.jsp").forward(req, resp); 

ait doGet() yönteminde bu koymak

Ve bu: çıktı

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%= request.getAttribute("test") %> 
<c:out value="${test}"/> 

olduğunu

:

SARASA ${test} 

Neyi yanlış yaptığımı bilmiyorum ... bunun nedeni ne olabilir?


Güncelleme: Ben bunu gerektiğinde her JSP ise

<%@ page isELIgnored="false" %> 

ekleyerek çözdü. Garip bir şekilde, çok benzer bir web.xml ve pom.xml dosyalarını kullanarak başka bir projeye ihtiyacım yoktu (maven kullanıyorum).

+0

testi ne temsil ?? – confucius

+0

testi, "SARASA" – eordano

+0

yazan bir dizeyle eşleştirilen (benim sunucuya bakın) özniteliğin adıdır. Ayrıca, JSTL wiki sayfamızın altına da bakın: http://stackoverflow.com/tags/jstl/info – BalusC

cevap

10

Sizin web.xml muhtemelen isELIgnored varsayılan olarak true ayarlı olduğu Servlet 2.3 spec, başvuran. Bunun yerine Servlet 2.4 belirtimine başvurursanız, isELIgnored varsayılan olarak false olarak ayarlanacaktır. Eğer Servlet 2.4 spec başvurmak istiyorsanız

, sizin web.xml başlık şöyle görünmelidir:

<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"> 
+0

Teşekkür ederim. Sorun, herhangi bir şeye atıfta bulunmamaktı ... Onu görmedim çünkü bu, doktrin içinde! (Genellikle bunu görmezden geliyorum) eordano