【问题标题】:can't get request parameter with core taglib, works with request.getparameter?无法使用核心 taglib 获取请求参数,可与 request.getparameter 一起使用?
【发布时间】:2011-10-31 07:29:36
【问题描述】:

编辑:终于找到了。由于某种原因,它在 Jetty 中不起作用,但是当我在那里构建并运行时,它在 Tomcat 中起作用。不知道为什么...

哦,伙计,我昨晚发疯了,试图解决这个问题......

简单的前提:

使用 Spring requestdispatcher 和控制器类,简单的 jsp 页面作为视图。

在我的控制器中:

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

如果使用常规的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" %>

【问题讨论】:

  • 我想知道,如果我写了一个客户标签库,并且不将“${requestScope.banana}”传递给 my_taglib,我可以在实现 my_taglib 的 java 类中获取 requestScope 吗?

标签: jsp spring-mvc jsp-tags


【解决方案1】:

你可能只是忘记在 JSP 开头声明使用核心 taglib:

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

而合适的方式是:

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

或者只是

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

除非你有一个同名的页面范围属性。

【讨论】:

  • 非常感谢您抽出宝贵时间!不,我确实包含标题,甚至尝试使用新/旧。澄清评论。至于怎么做,正如我提到的,我尝试了大约 4 种不同的方法,包括你提到的所有方法......(错字不在代码中)cries ;)跨度>
  • 请编辑您的问题,以包含一个显示问题的最小但完整的 JSP 页面,以及生成的 HTML 代码(通过在浏览器中查看页面源代码可以看到)。
  • 我找到了它......它是码头,在那里不起作用但是当我在 Tomcat 中构建和运行时工作......不知道如何修复它。
【解决方案2】:

供其他人参考:

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

我不确定它是什么,我在 Intellj 中按原样运行它,但猜测它与启动时使用 Jetty 部署的库有关。

【讨论】:

    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    相关资源
    最近更新 更多