哦,我昨晚发疯了,试图解决这个问题......
简单的前提:
使用Spring requestdispatcher和controller类,简单的jsp页面作为视图。
在我的控制器中:
request.setAttribute("banana", "myValue");
如果使用reqular jsp代码:
<%=request.getAttribute("banana")%>
按预期打印
但是我无法使用c-taglib来使用它。我已经尝试了一切:
<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 :(得分:2)
你可能只是忘了在JSP的开头声明使用核心taglib:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
适当的方式是:
<c:out value="${requestScope.banana}"/>
或只是
<c:out value="${banana}"/>
除非您有一个具有相同名称的页面范围属性。
答案 1 :(得分:1)
供其他人参考:
这是我运行的Jetty服务器的一个问题。在Tomcat上部署时,一切都按预期工作。
我不确定它是什么,我从Intellj内部按原样运行它,但猜测它与启动时Jetty部署的库有关。