model.addAttribute("salt", salt1);
boolean finalResult = result;
String jsonString = JSON.toJSONString(new HashMap<String, Object>() {{
put("result", finalResult);
put("salt", salt1);
}});
response.getWriter().write(jsonString);
根据代码,model.addAttribute("salt", salt1)
是将生成的盐值放入Model
中,供Ajax
方法中的视图(前端)使用。而JSON.toJSONString()
是将result
和salt
封装为一个JSON对象,在通过HTTP响应返回给前端。
具体来说,JSON.toJSONString()
接受一个Java对象,并将其转换成JSON格式的字符串。该方法可以嵌套使用Map
、List
等来构建复杂的JSON对象。
在当前代码中,首先创建了一个匿名的HashMap
实例,它有两个Key-Value键值对:result
和salt
,分别对应了是否注册成功的标志和生成的盐值。然后,调用JSON.toJSONString()
将该HashMap
实例转换为JSON格式的字符串,并将其作为响应主体返回给前端。
当客户端得到这个JSON数据时,可以使用JavaScript将其解析为一个包含result
和salt
属性的对象,然后根据情况对处理进行调整和判断。
在前端页面中使用了隐藏域来存储服务器生成的值
<%--隐藏域--%>
<input type="hidden" id="salt" value="${salt}">
js页面的Ajax
$.ajax({
url: ctx + '/xxx.do',
type: "POST",
data: {
"xxx": xxx,
后台传到页面的json串格式
通过表单收集得到的用户信息,用于向服务器提交注册请求。
其中,data参数是一个对象,其属性与用户参数的名称对应,它告诉服务器如何接受和处理来自客户端 的数据。这里采用了简单的JSON格式。
},
success: function (data) {
if (data.result === true) {
var dialogMessage = "data.salt;//拿到的值
//模态框
BootstrapDialog.show({
title: '',
closable: false,
message: dialogMessage,
buttons: [{
label: '确定',
action: function (dialog) {
window.location.href = ctx + "要跳转的页面";
}
}]
});
}
},
dataType: "json"
});
结果: