2014-02-12 46 views
1

當我使用標籤:在JSP頁面中,我得到以下錯誤使用JSTL標記<當c:如果裏面的javascript我得到錯誤

<c:if test="${comment.mediaObject.getClass().name == 'entities.persistent.Photo'}"> 

一個JavaScript函數中:

Syntax error on token "if", (expected after this token 

在.jsp頁面的html代碼下,這個工作很好,但是在JavaScript函數下不行。

我想要做的是在JavaScript中傳遞照片列表,然後將它們傳遞給在Google地圖中打印它們的初始化函數。但爲此,我需要知道mediaObjects是否是照片類型,否則我什麼也沒做。

編輯:

更換的getClass()的類實際上停止sintax錯誤,雖然我得到以下執行錯誤:

message /MapRoutes.jsp (line: 113, column: 4) "${comment.mediaObject.class.name == 'entities.persistent.Photo'}" contains invalid expression(s): javax.el.ELException: Failed to parse the expression [${comment.mediaObject.class.name == 'entities.persistent.Photo'}] 
+0

您不應該使用''或任何其他JSTL代碼來控制JavaScript代碼。如果你發佈你想要達到的更準確的指導,那會更好。 –

+0

看來你正在試圖合併兩個不同的世界。 – kosa

+1

它在JS函數中並不相關。如果它在JS *文件*中,那麼它將不會被JSP編譯器處理。 –

回答

1

變化comment.mediaObject.getClass().namecomment.mediaObject.class.name

當您編譯JSP時,它將轉換爲comment.getMediaObject().getClass().getName()

它在JavaScript塊內部的事實與錯誤無關。

EDIT解決無效表達:

一個小搜索表明,某些容器和/或EL規範規定以下語法由於以下事實:class是保留關鍵字。

comment.mediaObject['class'].name 

最後一個選項是添加以下啓動參數。如果沒有其他方法可行,我建議只做這個,因爲它會讓你的應用程序變得更加便攜。

-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true 
+0

事實上,它停止給我的錯誤,當我運行它時,我得到一個錯誤。請檢查我編輯的問題 – JoaoFilipeClementeMartins

+0

@JoaoFilipeClementeMartins請參閱編輯。 –

相關問題