使用jstl标签时

时间:2014-02-12 19:56:00

标签: java javascript html jstl

当我使用标签时:

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

在jsp页面的JavaScript函数中我收到以下错误:

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

在.jsp页面的html代码下,这很有用,但在JavaScript函数下则不行。

我要做的是在JavaScript中传递照片列表,然后将它们传递给在Google地图中打印它们的初始化函数。但为此,我需要知道mediaObjects是否是照片类型,否则我什么都不做。

编辑:

用class替换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'}]

1 个答案:

答案 0 :(得分:1)

comment.mediaObject.getClass().name更改为comment.mediaObject.class.name

编译JSP时,它将转换为comment.getMediaObject().getClass().getName()

它在JavaScript块中的事实与错误无关。

编辑以解决无效表达式:

一点点搜索表明某些容器和/或EL规范需要以下语法,因为class是保留关键字。

comment.mediaObject['class'].name

最后一个选项是添加以下启动参数。我建议只在没有其他工作的情况下才这样做,因为它会降低你的应用程序的可移植性。

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