json2html无法在JSP中工作

时间:2013-10-28 12:35:15

标签: jquery json

我正在尝试使用json2html,我有这个问题。代码所做的是迭代json对象并创建

我的代码适用于html但使用jsp失败。问题是jsp中没有选择来自json的值。我已经给出了下面的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>

1 个答案:

答案 0 :(得分:1)

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

${fraudFees}EL Expression。这意味着,您的JSP会检查变量或对象fraudFees是否存在并尝试将其呈现为字符串。由于没有这样的对象,它呈现一个空字符串。

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

可能的解决方案:

  • 使用$逃离\$(我不这样做,因为它使Javascript代码更难阅读)
  • 将Javascript放在外部文件中
  • 在内联Javascript中使用CDATA section