如果我做的: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