<c:if test =“$ {!request.isRequestedSessionIdFromCookie()}”>必须与命名空间一起使用吗?</c:if>

时间:2011-01-13 15:11:50

标签: jsp el

我试过了:

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

因为c:url因为某些原因编码了我的网址,所以我的JSP就开始了。 (在那个工作)。 所以我想尝试检查cookie是否已启用,但我收到错误:

  

功能   isRequestedSessionIdFromCookie必须是   默认情况下与前缀一起使用   没有指定名称空间

有谁知道这意味着什么?我经常使用EL请求,但我从来没有收到过这个错误。

1 个答案:

答案 0 :(得分:4)

除非您使用的是Servlet 3.0 / JSP 2.2,否则无法像这样调用EL对象上的方法。你需要一直对待他们Javabean方式。即不要使用getis前缀,也不要使用方法parens ()

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

(我假设HttpServletRequest已被放置在那里,否则您必须先PageContext获取

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

对于未由c:out编码的URL的具体问题,该标记不对此负责。你不是要与c:url混淆吗?