2016-01-05 94 views
1

下面的代碼成功發送字符串從jsp通過ajax到控制器並返回一些字符串。從控制器返回對象到ajax

如何發回(從控制器到ajax)只包含getter和setter或Boolean的對象?

AJAX:

 $.ajax({ 
     type: 'get', 
     url : 'register/checkUsername', 
     data : {'typedText' : typedText}, 
     success : function(data) { 
      $('#doesUsernameAvailable').text("ok " + data); 
     }, 
     error: function(){ 
      $('#doesUsernameAvailable').text('error'); 
     } 
    }); 

控制器:

@RequestMapping(value = "/checkUsername", method = RequestMethod.GET) 
    public @ResponseBody String checkUsername(String typedText, 
    HttpServletResponse response){ 

    //some code with return Boolean or Object 

    return "text from controller"; 
} 

回答

0

解決方案:

我不會發布的pom.xml。它丟失了:

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.6.3</version> 
    </dependency> 

現在很少修改了。

AJAX:

  $.ajax({ 
      type : 'get', 
      contentType : "application/json", 
      url : 'register/checkUsername', 
      data : {'typedText' : typedText}, 
      dataType : 'json', 
      success : function(data) { 
       $('#doesUsernameAvailable').text("ok " + data.isAvailable); 
      }, 
      error: function(){ 
       $('#doesUsernameAvailable').text('error'); 
      } 
     }); 

現在我們可以從控制器通過JSON返回Object。

控制器:

@Controller 
@RequestMapping("/register") 
public class RegisterController { 

    @RequestMapping(value = "/checkUsername", method = RequestMethod.GET) 
    public @ResponseBody CheckUsernameResponse checkUsername(
    @RequestParam String typedText){ 

    return new CheckUsernameResponse(true); 
} 

對象:

public class CheckUsernameResponse { 

    private Boolean isAvailable; 

    public CheckUsernameResponse(Boolean isAvailable) { 
     this.isAvailable = isAvailable; 
    } 

希望它能幫助!

相關問題