下面是我的Spring Controller代码。我的意图是将变量int a,int b,int c的值传递给Jsp页面ADMINRESULTS。
请注意,这些变量的值将用于在adminhome jsp页面中初始化javascript变量
@RequestMapping("/adminresults") //this is called by form action. This does not refer to adminhome jsp page
public String adminhome(Map<String, Object> model) {
ArrayList<Block> blockChain = NoobChain.getBlockChain();
Map<String, Integer> dataMap = new HashMap<String, Integer>();
if (!blockChain.isEmpty()) {
if (!NoobChain.isChainValid(blockChain)) { //if not valid to print the data.
model.put("tampermsg", "Unathorized acess detected and vote data is attacked.Correct values are ");
dataMap = NoobChain.validChainData(blockChain);
} else {
dataMap = blockChain.get(0).getData();
}
}
String blockchainJsonFromFile = new GsonBuilder().setPrettyPrinting().create().toJson(blockChain);
System.out.println("after.." + blockchainJsonFromFile);
model.put("message", "\n" + dataMap);
System.out.println("Before extracting DATA is "+dataMap);//to check the format of data map
int a=0;
int b=0;
int c=0;
if (dataMap.containsKey("A"))
{
a = dataMap.get("A");
System.out.println("value for key \"A\" is:- " + a);
}
if (dataMap.containsKey("B"))
{
b = dataMap.get("B");
System.out.println("value for key \"B\" is:- " + b);
}
if (dataMap.containsKey("C"))
{
c = dataMap.get("C");
System.out.println("value for key \"C\" is:- " + c);
}
model.put("a", a);
model.put("b", b);
model.put("c", c);
return "adminhome"; //significance of this code is to return adminhome jsp page
}
下面是adminhome jsp页面上的代码段
<html>
<head> </head>
<body>
<script type="text/javascript">
var as=8,cs=1,bs=4;
</script>
</body>
</html>
我的意图是用int a,int b,int c(来自上面提到的Spring Controller)将以上变量初始化为bs,cs。
答案 0 :(得分:0)
从控制器发送json对象,并分配给html上的隐藏变量,然后在Java脚本中使用该对象。 下面是代码,只是
下的sudo代码内部控制器
List<Someclass> list = new ArrayList<>();
Someclass someClass = new Someclass();
someClass.setKey("a");
someClass.setValue(1);
list.add(someClass);
Gson gson = new Gson();
ModelAndView modelAndView = new ModelAndView("adminhome");
modelAndView.addObject("list", gson.toJson(someClass));
JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<script type="text/javascript">
$(document).ready(function() {
var someClassJson = $('#"admin"');
list admins = JSON.parse(someClassJson.val());
for (var i = 0; i < admins.lenth; i++) {
var item = admins[i];
console.log(someClass.key);
console.log(someClass.value);
}
});
</script>
<head>
<title>Admin Example</title>
<script src="jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="personScript.js"></script>
</head>
<body>
<h1>
<Admin/h1> <input type="hidden" id="admin" value="${list}"/>
</body>
</html>
希望这会有所帮助。
答案 1 :(得分:0)
找到一个简单的答案,谢谢桑杰(Sanjay)的帮助,尼桑·拉杰(Nishant Raj)(也请检查他的代码,作为我的初学者,我无法实现他的代码)
在adminhome jsp页面中
<html>
<head> </head>
<body>
<script type="text/javascript">
var aa="${a}",bb="${b}",cc="${c}";
</script>
</body>
</html>
上面的代码将从spring控制器中获取值到javascript变量aa,bb,cc等。
但是请注意,如果需要将获取的值用作整数,则必须将其转换。目前它是String类型的。
它的代码是。
<html>
<head> </head>
<body>
<script type="text/javascript">
var aa="${a}",bb="${b}",cc="${c}";
var as=parseInt(aa),cs=parseInt(cc),bs=parseInt(bb);
</script>
</body>
</html>
parseInt会将其转换为整数,以便在将来的某些函数中使用它(如果需要)。 谢谢大家,问题已解决:)