0

こんにちは、javascript 関数を呼び出したい JSP で問題が発生しています。

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

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

...
</c:forEach>  

現在、firebug でエラーが表示されます: Returned が定義されていません。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 に答える