2015-04-22 131 views
2

我有一个Controller,它返回一个用户列表。当用户存在时,程序工作正常。但是,当用户没有找到时,控制器返回null到jsp页面,在这种情况下,我得到一个空白屏幕,没有打印出jsp页面中的“alert”。请让我知道为什么警报(“用户不存在”)无法打印,以及当控制器向jsp页面返回null时如何处理这种情况。Spring MVC控制器向视图返回空数据

@RequestMapping(value = "/userSearch", 
        method = RequestMethod.POST, 
        produces = "application/json") 
    @ResponseBody 
    public UserList search @RequestParam String username) 
    {  
      UserList userListObj = search(username); // search database 

      if (userListObj.getUserList().size() > 0) 
      { 
       return userListObj; 
      } 
      else 
      { 
       return null; 
      } 
    } 

JSP代码:

function ajaxUserSearch() 
    { 
     var uname = $("#userName").val(); 
     if (uname) 
     {    
       $.ajax({ 
       type: "POST", 
       url: "userSearch.htm", 
       data: "username=" + uname , 
       dataType: "json", 
       success: function(data) 
       { 
        alert("data=" + data); 
        if (data!=null) 
        {  
          alert("data not null"); 
        } 
        else 
        {    
         alert(" user does not exist, please check"); 
        }     
       },     
       error: function(jqXHR, status, error) 
       { 
        alert("error=" + error + "\nstatus=" + status); 
       }    
      }); 
     } 
     else // If no name is entered but Search button is pressed 
     { 
      alert("Please enter a user name."); 
     } 
} 

回答

0

真的没有甚至需要检查userListObj的大小,控制器...只是对象返回页面:

@ResponseBody 
public UserList search @RequestParam String username) {  
     return search(username); // search database 
} 

然后在您的ajax成功函数中,解析json并检查长度为UserList

success: function(data) { 
    var userListObj = $.parseJSON(data); 
    if(userListObj.UserList.length > 0) {  
     alert("data not null"); 
    } else { 
     alert("user does not exist, please check"); 
    } 
1

不返回null。它基本上是一个空的http响应。

在Java代码中,试图返回类似:return "notfound"

然后在Javacript success尝试做这样的事情:

if (data != null) { 
    if (data === "notfound") { 
    alert("user not found"); 
    } else { 
     alert("user found" + data); 
    } 
} else { 
    alert("unexpected error when finding user. please try again"); 
} 
-1

我通过禁用上的回车键解决我自己的问题客户端输入字段。

$("form").bind("keypress", function (event) 
      { 
       if (event.keyCode == 13) 
       { 
        event.preventDefault(); 
        return false; 
       } 
      });