2011-09-10 5 views
5

私には2つの問題があります。最初の1つは私がJSPを使用しており、私は解決できないということです。もう一つは私が奇妙な行動を取っていることです。 "WEB-INF/main.jsp" で

私は私のサーブレット

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

のはdoGet()メソッドでこれを入れ

そして、これは:出力は

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

です

SARASA ${test} 

私は何が間違っているのか分かりません...何が原因でしょうか?


アップデート:私はそれは私がそれを必要な各JSPで

<%@ page isELIgnored="false" %> 

を追加し解決しました。奇妙なことに、非常に似たweb.xmlファイルとpom.xmlファイル(私はmavenを使用しています)を使用して、別のプロジェクトでその必要はありませんでした。

+0

テスト何を表します? – confucius

+0

testは私が設定していた属性(サーブレットを参照)の名前で、 "SARASA"という文字列にマッピングされています – eordano

+0

JSTL wikiページの下の部分も参照してください:http://stackoverflow.com/tags/jstl/info – BalusC

答えて

10

web.xmlはおそらくisELIgnoredがデフォルトでtrueに設定されているServlet 2.3仕様を参照しています。 Servlet 2.4仕様を参照する場合、isELIgnoredはデフォルトでfalseに設定されます。

あなたはサーブレット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"> 
+0

ありがとうございました。問題は何も言及していないということでした...それはdoctypeにあったので私はそれを見ませんでした! (私は通常無視します) <!DOCTYPE web-app PUBLIC " -// Sun Microsystems、Inc.DTD Webアプリケーション2.3 // EN" "http://java.sun.com/dtd/web -app_2_3.dtd "> – eordano

関連する問題