1

私はjson2htmlを試していますが、この問題があります。コードが行うことは、json オブジェクトを反復処理して作成することです

私のコードは html では問題なく動作しますが、 jsp では失敗します。問題は、json からの値が jsp で選択されないことです。以下に jsp と html コードを指定しました。値は警告ボックスに表示されます。

どんな助けでも大歓迎です

HTML - (作品)

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript" src="json2html.js"></script>
    <script type="text/javascript" src="jquery.json2html.js"></script>

</head>
<body>
<script type="text/javascript">
    var template = {"tag":"td","html":"${fraudFees}"};
    var data = [
    {"fraudFees":3.0}
    ];
    var str = json2html.transform(data,template);
    alert("str is"+str);
     // output is str is <td>3</td>
</script>
</body>
</html>

(JSP - 動作しません)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript" src="json2html.js"></script>
    <script type="text/javascript" src="jquery.json2html.js"></script>
</head>
<body>
<script type="text/javascript">
    var template = {"tag":"td","html":"${fraudFees}"};
    var data = [
    {"fraudFees":3.0}
    ];
    var str = json2html.transform(data,template);
    alert("str is"+str);
     // output is str is <td></td>
</script>
</body>
</html>
4

1 に答える 1

1
var template = {"tag":"td","html":"${fraudFees}"};

${fraudFees}EL Expressionです。つまり、JSP は変数またはオブジェクトfraudFeesが存在するかどうかを確認し、文字列としてレンダリングしようとします。そのようなオブジェクトがないため、空の文字列をレンダリングします。

HTML は Expression Language を認識しないため${fraudFees}、HTML バージョンのページに表示されます。

可能な解決策:

  • $using をエスケープし\$ます (Javascript コードが読みにくくなるため、私はそうしません)
  • Javascript を外部ファイルに配置する
  • インライン Javascript でCDATA セクションを使用する
于 2013-10-29T05:48:11.283 に答える