将弹簧控制器的响应返回到角度js

时间:2016-10-04 22:32:17

标签: angularjs spring rest

当用户尝试将表单注册到我的java脚本时,我试图传递我的其余控制器的响应,无论用户名是否可用,基于Spring控制器返回的语句。但是我试图使用模型属性我的弹簧控制器。我在js中捕获这个的方式是什么。从servlet的角度来看,它就像我们已经完成一样。写下如何用spring完成。

我的Spring控制器

@RequestMapping(method = RequestMethod.POST,value = "/checkUserName", headers = "Accept=application/json")
public org.weber.nag.model.UserRegistration checkUserName(@RequestBody org.weber.nag.model.UserRegistration userReg, Model model) {
    userDao.getAllUsers(userReg);
    System.out.println(userDao.getAllUsers(userReg));
    model.addAttribute("success", userReg);
    return userReg;
}

AngularJS

   var formData = {
                 'userName'  : $scope.ctrl.newCustomer.userName
          };
         var response =$http.post('http://localhost:8081/Weber/user/checkUserName', formData);
         response.success(function(data, status, headers, config) {

             var cntrlMessage = $('#message');
                message = cntrlMessage;
                //alert(message);
            alert(message);
             $scope.list.push(data);
         });
         response.error(function(data, status, headers, config) {
            alert( "User name already exists.");
         });

更新了Spring Controller

@RestController
@RequestMapping(value = "/user")
public class UserRegistrationControllerImpl{

@RequestMapping(method = RequestMethod.POST,value = "/checkUserName", headers = "Accept=application/json")
public String checkUserName(@RequestBody org.weber.nag.model.UserRegistration userReg, ModelMap model) {
    userDao.getAllUsers(userReg);
    System.out.println(userDao.getAllUsers(userReg));
    String message = userDao.getAllUsers(userReg);
    model.addAttribute("message", message);
    return message;
}
}

我尝试使用$ http命中其余控制器它运行良好我怎样才能将我的休息控制器的休息说用户可用/用户不可用作为警报回到我的js。

谢谢

1 个答案:

答案 0 :(得分:0)

您的代码似乎使用Ajax来完成工作。

然后,您的Ajax成功方法希望接受文本响应。

话虽如此:

  1. 从您的控制器中只返回您要显示的任何字符串/文字作为合法答案:$array1 = array('Daughter', 'Daughter','Son'); $array2 = array('Nitu', 'Ritu', 'Ramesh'); foreach ($array1 as $k => $arr1) { $result[] = array( 'relation' => $arr1, 'name' => $array2[$k] ); }

  2. 使用user available/user not available注释您的控制器,它将告诉Spring在HTTP响应中返回String答案。因此,您的Ajax成功方法将接受带有@ResponseBody消息的HTTP响应。

  3. 确保您使用user available/user not available

    在js文件中实际获取该字符串
    console.log