java - 使用 jSTL 标签时 <c :if inside javascript i get error

标签 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 map 中打印它们的初始化函数。但为此我需要知道 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'}]

最佳答案

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

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

它位于 JavaScript block 内这一事实与该错误无关。

编辑以解决无效表达式:

稍微搜索一下就会发现,由于 class 是保留关键字,某些容器和/或 EL 规范需要以下语法。

comment.mediaObject['class'].name

最后一个选项是添加以下启动参数。我建议仅在其他方法不起作用的情况下才执行此操作,因为它会降低您的应用程序的可移植性。

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

关于java - 使用 jSTL 标签时 <c :if inside javascript i get error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738281/

相关文章:

java - 是否可以使用服务器端java程序用angularjs脚本生成html文件?

css - 如何将一张图片 float 在另一张图片之上?

java - 使用java获取REST Web服务中http请求的内容

java - XSLT 如何使用数组过滤数据

java - ANTLR 的基本帮助

javascript - Node.js、流、文件和错误处理

javascript - 期望 toNotBe() 未定义不是函数

javascript - MouseMove 事件未在 Chrome 中触发

html - 垂直纸 slider 元素

与自定义密码套件的 Java HTTPS 连接