无法使用核心taglib获取请求参数,使用request.getparameter?

问题描述:

编辑:最后发现它。由于某些原因,它在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

对于其他参考:

这是与我运行的Jetty服务器的问题。在Tomcat上部署时,一切都按预期工作。

我不完全确定它是什么,我是从Intellj内部原封不动地运行它的,但是猜测它与在启动时部署Jetty的库有关。

你可能只是忘了在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