如果我做的:JSP標籤文件可以訪問它的調用JSP的PageContext嗎?
<% pageContext.setAttribute("foo", "bar"); %>
<custom:myTag/>
好像我應該能夠做到:
<%= pageContext.getAttribute("foo") %>
myTag.tag內......但我當然不能因爲標籤文件沒有按無法訪問pageContext(取而代之,它可以訪問jspContext ...,它不具有與調用頁面的pageContext相同的屬性)。
現在,你可以通過訪問ELScript pageContext的:
${pageContext}
但這並沒有幫助,因爲ELScript沒有傳遞參數的方法,所以你不能做的:
${pageContext.getAttribute("foo")}
然而,ELscript可以訪問頁面上下文,以及標籤可以訪問像jspContext這樣的各種變量這一事實,標籤必須有某種訪問方式(以scriptlet/Java邏輯方式,而不僅僅是在ELScript)來自調用JSP的pageContext的屬性。
有嗎?
謝謝,但事情是,我已經在pageContext中獲得了我想要的變量,並且有足夠的(遺留)代碼引用它們,我不想將它們更改爲請求屬性。所以我*可以*只是將重複的副本放入請求中,但我希望有其他方法可以做到這一點。哦,如果我把這些變量變成屬性,這些變量將會在很多標籤中通過,所以我真的希望有一個「幕後」解決方案。如果沒有辦法通過標記訪問JSP的pageContext,但是...猜猜我運氣不佳:-( – machineghost
)您可以使用(PageContext)getJspContext()來訪問實際的頁面上下文,請參閱下面的答案。 –
@Jason:問題不在於此。 – BalusC