如何从控制器发送返回的布尔结果以在Spring MVC中查看

时间:2018-11-01 11:52:20

标签: java jquery ajax spring-mvc

我要将控制器方法返回的值(即标志)发送到我的视图,并且在视图中,我需要根据该标志显示警报消息。这是我的控制器代码

@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调用中发送该布尔值,并显示一个弹出窗口或警报框。如何实现呢?

3 个答案:

答案 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
      }
 }