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 表达式。这意味着,您的 JSP 检查变量或对象是否fraudFees存在并尝试将其呈现为字符串。由于没有这样的对象,它呈现一个空字符串。

HTML 不了解表达式语言,因此您可以${fraudFees}在页面的 HTML 版本中看到。

可能的解决方案:

  • 转义$使用\$(我不会这样做,因为它使 Javascript 代码更难阅读)
  • 将 Javascript 放在外部文件中
  • 在您的内联 Javascript 中使用CDATA 部分
于 2013-10-29T05:48:11.283 回答