如何从 Adobe CQ5.. 中的 JCR 值中检查空值?
how to check null from JCR value in Adobe CQ5..?
大家好,我是新的 Adobe CQ5,我正在从 Adobe 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 中混用 html
和 Java
代码。
阅读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}" />
大家好,我是新的 Adobe CQ5,我正在从 Adobe 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 中混用 html
和 Java
代码。
阅读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}" />