2015-02-09 53 views
0

大家好我是新的Adobe CQ5,我得到在Adobe CQ5組件從JCR值,值呈現罰款,但現在要檢查空,我做這樣的:如何從Adobe CQ5的JCR值中檢查null ..?

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

但產生一個錯誤,任何人都可以建議我做錯了什麼。

+0

你如何初始化'屬性'對象? – 2015-02-09 12:36:57

+0

我聲明這個名稱爲CRX中的財產,我很好,但在檢查null時遇到問題 – 2015-02-09 12:40:45

回答

1

這是實現它的更好方法。

<% 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">

+0

謝謝做完,它對我很好 – 2015-02-09 12:54:57

+1

很高興聽到它的作品..很高興幫助你.. – 2015-02-09 12:56:48

+1

'屬性'對象已經被設置爲頁面屬性,所以如果我們使用'properties.videoImage',第一行是多餘的在JSTL指令中。查看我的回覆以瞭解更多詳情。 – 2015-02-09 12:57:02

1

我想這個問題是你是不是終止scriptlets得當,在你的JSP

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

不要混合htmlJava代碼。

閱讀How to avoid Java code in JSP files?

+0

我也試過這個,不適用於那個 – 2015-02-09 12:48:12

+0

你會得到什麼錯誤? – 2015-02-09 12:48:53

6

使用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}" /> 
+0

你能建議我如何檢查Anchor href的相同null條件 – 2015-02-09 13:04:42