2011-10-31 84 views
1

編輯:最後發現它。由於某些原因,它在Jetty中不起作用,但是在我構建並運行時在Tomcat中工作。不知道爲什麼,雖然...無法使用核心taglib獲取請求參數,使用request.getparameter?

哦,男人我瘋了,昨晚試圖理清了這一點...

簡單的前提:

使用彈簧的RequestDispatcher和控制器類,簡單的JSP頁面視圖。

在我的控制器:

request.setAttribute("banana", "myValue"); 

如果使用reqular JSP代碼:

<%=request.getAttribute("banana")%> 

其打印效果與預期

,但我不能得到它使用C-標籤庫的工作。我用盡了一切:

<c:out value="${param.banana}"/> <c:out value="${requestScope.banana}"/> and like 4 more. 

沒有什麼工作...它只是打印值,即是$ {} param.banana爲文本。

我環顧四周,但找不到任何解決方案,我一定是個白癡。請幫助我。

編輯忘了澄清: 我已包括相應的jspheader

<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core_rt' %> 

也試過

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
+0

我想知道,如果我編寫客戶taglib,並且不要將「$ {requestScope.banana}」傳遞給my_taglib,我可以在實現my_taglib的java類中獲取requestScope嗎? – meadlai

回答

1

對於其他參考:

這是與我運行的Jetty服務器的問題。在Tomcat上部署時,一切都按預期工作。

我不完全確定它是什麼,我是從Intellj內部原封不動地運行它的,但是猜測它與在啓動時部署Jetty的庫有關。

2

你可能只是忘了在JSP的開始申報使用的核心標記庫的:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

而適當的方法是:

<c:out value="${requestScope.banana}"/> 

或只是

<c:out value="${banana}"/> 

,除非你有一個頁面scope屬性具有相同的名稱。

+0

非常感謝您花時間!不,我包括標題,甚至嘗試過新/舊。澄清的評論。至於如何做到這一點,正如我所提到的,我嘗試了大約4種不同的方式,包括你所說的......(錯字不在代碼中)*哭泣*;) – Mathias

+0

請編輯您的問題,以包括一個最小但完整的JSP頁面,展示該問題,並生成HTML代碼(可以通過查看頁面源代碼瀏覽器)。 –

+0

我發現它...它是碼頭,在那裏不起作用,但是當我在Tomcat中構建和運行...不知道如何修復它。 – Mathias