我要将控制器方法返回的值(即标志)发送到我的视图,并且在视图中,我需要根据该标志显示警报消息。这是我的控制器代码
@RequestMapping(value = "/testing", method = RequestMethod.POST)
public Boolean testing(@RequestBody String value, HttpSession session, String username, ModelMap modelMap, HttpServletRequest request) throws Exception {
Boolean flag = false;
User userData = (User) session.getAttribute("MEMBER");
for (OrgData org: orgDataRepository.findAll()) {
if (m.getValue() != null) {
sourceAccessToken = (String) m.getValue();
flag = true;
} else {
System.out.println("Refresh token is expired");
flag = false;
}
}
return flag;
}
我的查看代码如下所示
let btnVal = document.querySelectorAll('.test-btn');
for (let i = 0; i < btnVal.length; i++) {
let btns = btnVal[i];
btns.onclick = function() {
var selchbox = getSelectedChbox(this.form); // gets the array returned by getSelectedChbox()
if (selchbox.length == 1) {
//document.write("check check"+selchbox);
$.ajax({
type: "POST",
url: "/testing",
dataType: "JSON",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(selchbox),
cache: false,
success: function(data) {
alert("SUCCESS!!!");
},
error: function(args) {
/* alert("Error on ajax post");
console.log("Error"+args); */
}
});
} else {
alert("Please select only one check box");
}
}
}
我想在此ajax调用中发送该布尔值,并显示一个弹出窗口或警报框。如何实现呢?
答案 0 :(得分:0)
只需在成功函数中尝试以下代码:
success: function (data) {
if (data) {
alert("Success!");
} else {
alert("False value.");
}
}
答案 1 :(得分:0)
您似乎并没有用服务器价值做任何事情。 您需要将其返回给客户端。 由于您使用的是Spring,因此您应该能够将json返回给您的Ajax调用。
@RequestMapping(value="/testing", method = RequestMethod.POST, produces = "application/json")
@ResponseBody
public Map testAjax() {
return Collections.singletonMap("flag", true);
}
然后您的ajax调用可以检索该值:
success: function (data) {
console.log("Success");
console.log(data);
alert(data.flag)
},
error: function (args) {
console.log("error");
console.log(args);
}
答案 2 :(得分:0)
从您的ajax调用中删除属性dataType: "JSON"
。 B'coz返回的是一个简单的布尔值。但是该属性指示期望的响应是JSON,在这种情况下不正确。然后使用
success: function (data) {
if (data) {
// your true code here
} else {
// your false code here
}
}