大家好,我在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>
目前我的firebug给了我一个错误: 返回没有定义。的javascript:expandOrCollapse(1,%20Returned);()
如何仅传入item.type.name ???
的文本值答案 0 :(得分:1)
显然,${item.type.name}
是一个字符串,因此需要正确转义和引用。例如,如果${item.type.name}
是字符串returned "value" & more
,则HTML输出应如下所示:
<a href="javascript:expandOrCollapse(1, "returned \"value\" & more");">
答案 1 :(得分:1)
您需要在字符串周围加上引号,否则它将被视为javascript变量名称:
<a href="javascript:expandOrCollapse(${sectionNumber}, '${item.type.name}');">
// ^ quotes ^
如果它是一个字符串,你还需要引用sectionNumber
。如果它是一个数字,你就不会。
答案 2 :(得分:0)
我想出的解决方案是jbabey和Salman A的答案。我添加了像jbabey建议的引用。但它必须像Salman A所说的那样被转义为HTML,所以我在参数之前添加了f:escapeHtml
函数并且有效。