2

jsp 文字列変数を JavaScript 関数に渡す必要があります。これは通常はかなり単純ですが、渡す文字列に xml 文字が含まれているため、現在問題が発生しています。

これはjspです(わかりやすくするために短縮されています)

<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"   prefix="c"%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <body>
        <input type="button" value="MyButton" onclick="myFunction('<c:out value="${current.xmlOutput}"/>');" />  
    </body>
 </html>  

「current.xmlOutput」の値には、次が含まれます

<chart caption='Flight Hours' xAxisName='Flight' yAxisName='Hours' ><set label='AC908' value='126' /><set label='AC812' value='234' /><set label='AC184' value='78' /></chart>

生成された JSP ソース

<input type="button" value="MyButton" onclick="myFunction('&lt; chart  caption  = &#039;Flight Hours&#039; xAxisName  = &#039;Flight&#039; yAxisName  = &#039;Hours&#039;&gt;&lt; label  = &#039;AC908&#039; value  = &#039;126&#039; /&gt; &lt; label  = &#039;AC812&#039; value  = &#039;234&#039; /&gt; &lt; label  = &#039;AC184&#039; value  = &#039;78&#039; /&gt; &lt;/ chart &gt;');" />

ボタンを押しても関数は呼び出されません。「current.xmlOutput」に「Test」のような単純な文字列が含まれている場合、すべて正常に機能します。クロム開発者ツールでは、「Uncaught SyntaxError: Unexpected identifier」というメッセージが表示されます

また、これを行うフィルターがあります req.setCharacterEncoding("UTF-8"); 私が間違っていることを知っている人はいますか?どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1