我正在尝试使用json2html,我有这个问题。代码所做的是迭代json对象并创建
我的代码适用于html但使用jsp失败。问题是jsp中没有选择来自json的值。我已经给出了下面的jsp和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>
<%@ 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>
答案 0 :(得分:1)
var template = {"tag":"td","html":"${fraudFees}"};
${fraudFees}
是EL Expression。这意味着,您的JSP会检查变量或对象fraudFees
是否存在并尝试将其呈现为字符串。由于没有这样的对象,它呈现一个空字符串。
HTML不了解表达式语言,因此您会在页面的HTML版本中看到${fraudFees}
。
可能的解决方案:
$
逃离\$
(我不这样做,因为它使Javascript代码更难阅读)