如何在JSP中调用自定义标记函数来访问请求对象

时间:2014-03-25 16:44:12

标签: jsp servlets jstl httprequest jsp-tags

在JSP页面中,我使用的是自定义JSTL函数,该函数将request对象作为输入之一。

目前我在JSP中使用以下方式访问它。

<c:if test="${custom:isVisitorFromNorthAmerica(request)}">
...
</c:if>

标签功能定义如下,

<function>
    <name>isVisitorFromNorthAmerica</name>
    <function-class>com.x.y.JspELFunctions</function-class>
    <function-signature>
        java.lang.Boolean isVisitorFromNorthAmerica(javax.servlet.http.HttpServletRequest)
    </function-signature>
</function>

custom#isVisitorFromNorthAmerica的函数定义中,请求对象为null。我不知道如何访问request对象,而不依赖于scriptlet。

我确保发送到自定义标记的request对象不为空,因为我在自定义函数调用之前添加了一个scriptlet&amp;设置得当。

1 个答案:

答案 0 :(得分:2)

我找到了答案。我需要使用pageContext访问它。所以不要这样称呼它,

<c:if test="${custom:isVisitorFromNorthAmerica(request)}">

我需要这样称呼它,

<c:if test="${custom:isVisitorFromNorthAmerica(pageContext.request)}">