【问题标题】:access pageContext variables in JSTL within Apache Sling在 Apache Sling 中访问 JSTL 中的 pageContext 变量
【发布时间】:2013-03-22 18:17:39
【问题描述】:

我在 Apache Sling 中创建了一个 JSP,我在其中使用 scriplet 来检索对象列表,然后我想使用 JSTL 对其进行迭代。但是,使用下面的代码,我在 JSTL 中看不到任何结果。我可以使用 JSTL (

重要的部分:

<%
    AppLinkService appLinkSvc = new AppLinkService(); 
    String userId = "sean"; //TODO get from request

    List<AppLink> links = appLinkSvc.getAppLinksFromWebService(userId);
    pageContext.setAttribute("appLinkList", links);
%>
<br/>
<br/>

<c:if test="${empty appLinkList}">
    <h1>You do not have any apps.</h1>
</c:if>
<c:if test="${not empty appLinkList}">
    <c:forEach items="${appLinkList}" var="link">
        <h3>
            <a href='<c:out value="${link.linkUrl}"/>'> 
                <c:out value="${link.appName}" /> 
            </a>
        </h3>
    </c:forEach>
</c:if>

我知道我的所有导入都是正确的(我解决了所有这些错误),但现在我无法访问这些对象。我在一个简单的 Tomcat Web 应用程序中也有同样的代码(带有导入等),但我知道 Apache Sling 的情况有所不同。似乎 pageContext 在 Sling 世界中的工作方式不同。

我错过了什么?

谢谢, 肖恩

【问题讨论】:

    标签: java jstl sling scriptlet


    【解决方案1】:

    代码在我看来是正确的,应该可以正常工作。如果您的链接列表确实包含任何对象,您是否尝试过?尝试访问它像

    <h1>Size is <%= links.size()%></h1>
    

    HTH, (c)

    【讨论】:

    • JSTL 很好,我的服务是问题所在。但是,需要为 OSGi 容器更新 log4j 配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 2021-08-23
    相关资源
    最近更新 更多