如何从 Adob​​e CQ5.. 中的 JCR 值中检查空值?

how to check null from JCR value in Adobe CQ5..?

大家好,我是新的 Adob​​e CQ5,我正在从 Adob​​e CQ5 组件中的 JCR 获取值,值呈现正常但现在想检查 null,我这样做:

  <% if(<%= properties.get("videoImage") %> != null)
     {
       <img src=<%= properties.get("videoImage") %> />
     }
  %> 

但它会产生错误,任何人都可以提出我做错了什么。

我想问题是你没有正确终止 scriptlets

  <% if(properties.get("videoImage") != null)
     { %> 
       <img src=<%= properties.get("videoImage") %> />
   <%}
  %> 

不要在 jsp 中混用 htmlJava 代码。

阅读How to avoid Java code in JSP files?

这是更好的实现方式。

<% pageContext.setAttribute("videoImage", properties.get("videoImage", ""));%>
    <c:if test="${not empty videoImage}">
        <img src="${videoImage}" />
    </c:if>

最好在顶部的一个位置将所有变量设置为会话、请求、页面上下文属性,您可以在整个组件中使用它 jsp,或者更简洁的方法是在jsp 并使用 <cq:include script"path/to/jsp">

包含它们

使用JSTL:

<c:if test="${not empty properties.videoImage}">
    <img src="${properties.videoImage}" />
</c:if>

或从JSP切换到Sightly(推荐选项):

<img data-sly-test="${properties.videoImage}" src="${properties.videoImage}" />