【问题标题】:<c:if test="${!request.isRequestedSessionIdFromCookie()}"> must be used with a namespace?<c:if test="${!request.isRequestedSessionIdFromCookie()}"> 必须与命名空间一起使用吗?
【发布时间】:2011-01-13 15:11:50
【问题描述】:

我试过了:

<c:if test="${!request.isRequestedSessionIdFromCookie()}">

在我的任何 JSP 中,因为 c:url 出于某种原因没有对我的 url 进行编码。 (研究那个)。 因此,我想尝试检查是否启用了 cookie,但出现错误:

函数 isRequestedSessionIdFromCookie 必须是 默认时与前缀一起使用 未指定命名空间

有谁知道这意味着什么?我经常将 EL 与 request 一起使用,但从未收到此错误。

【问题讨论】:

    标签: jsp el


    【解决方案1】:

    除非您使用的是 Servlet 3.0 / JSP 2.2,否则您不能像这样在 EL 对象上调用方法。您需要一直以 Javabean 方式对待它们。 IE。不要使用 getis 前缀,也不要使用方法括号 ()

    <c:if test="${!request.requestedSessionIdFromCookie}">
    

    (我假设HttpServletRequest被放在那里,否则你必须先通过PageContext得到它)

    <c:if test="${!pageContext.request.requestedSessionIdFromCookie}">
    

    至于 URL 未被c:out 编码的具体问题,该标签不对此负责。你不会和c:url混淆吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2016-08-22
      • 2020-09-07
      • 2023-03-04
      • 1970-01-01
      • 2012-01-11
      • 2016-09-14
      • 2021-08-26
      相关资源
      最近更新 更多