0

嗨,我在 JSP 中遇到了一个问题,我希望调用一个 javascript 函数:

<c:forEach var='item' items='${bookLogs}' varStatus="status">
...

<tr >
    <td colspan="9"><a href="javascript:expandOrCollapse(${sectionNumber}, ${item.type.name});">
</tr>

...
</c:forEach>  

目前我的萤火虫给了我一个错误:未定义返回。javascript:expandOrCollapse(1,%20Returned);()

我如何只传递 item.type.name 的文本值???

4

3 回答 3

1

显然,${item.type.name}是一个字符串,因此需要正确地转义和引用。例如,如果${item.type.name}是 string returned "value" & more,您的 HTML 输出应如下所示:

<a href="javascript:expandOrCollapse(1, &quot;returned \&quot;value\&quot; &amp; more&quot;);">
于 2012-06-29T17:13:18.937 回答
1

您需要在字符串周围加上引号,否则它将被视为 javascript 变量名:

<a href="javascript:expandOrCollapse(${sectionNumber}, '${item.type.name}');">
//                                                     ^     quotes      ^

sectionNumber如果它是一个字符串,你也需要引用。如果它是一个数字,你不知道。

于 2012-06-29T17:19:12.023 回答
0

我想出的解决方案是结合 jbabey 和 Salman A 的答案。我添加了 jbabey 建议的引号。但它仍然需要像 Salman A 所说的那样进行 HTML 转义,所以我f:escapeHtml在参数之前添加了函数并且有效。

于 2012-06-29T18:19:29.253 回答