2016-07-21 14 views
0

Ich benutze Frühjahr Boot und es ist einer meiner Ruhe ControllerErgebnis der Verwendung von ResponseEntity ohne Rückgabewert

@RequestMapping(value = "/members/{memberId}/creditcard", method = RequestMethod.PUT) 
public ResponseEntity saveCreditCard(@PathVariable("memberId") Long memberId, @RequestBody CreditCardInfoDto creditCardInfo) throws CreditCardException, ResourceNotFoundException { 
    paymentService.saveCreditCard(creditCardInfo); 
    return new ResponseEntity(HttpStatus.OK); 
} 

Auf der Client-Seite, ich

jQuery.ajax({ 
    type: type, 
    url: url, 
    contentType: "application/json", 
    dataType: "json", 
    data: data, 
    success: function(data, status, jqXHR) { 
    if (data) { 
    ... 
    } 
    }, 
    error: function(jqXHR, status) { 
    ... 
    } 
}); 

ich alle Tage durch den Fehlerabschnitt passieren ... Ergebnis ist

qXHR = Object {readyState: 4, responseText: "", status: 200, statusText: "OK"}, status = "parsererror 

Irgendeine Idee?

Antwort

0

Sie sind fast da. ResponseEntity übergibt den ersten Parameter als Ergebnis der gespeicherten Karte. Hier ist das Beispiel

@RestController 
public class CreditCardController { 

    @Autowired PaymentService paymentService; 

    @RequestMapping(value = "/members/{memberId}/creditcard", method = RequestMethod.PUT) 
    public ResponseEntity saveCreditCard(@PathVariable("memberId") Long memberId, @RequestBody CreditCardInfoDto creditCardInfo) { 
     CreditCardInfoDto savedCardDto = paymentService.saveCreditCard(creditCardInfo); 
     return new ResponseEntity(savedCardDto, HttpStatus.OK); 
    } 

} 


@Service 
class PaymentService { 
    public CreditCardInfoDto saveCreditCard(CreditCardInfoDto dto) { 
     // business logic to save the credit card 

     CreditCardInfoDto responseDto = new CreditCardInfoDto(); 
     responseDto.setName(dto.getName()); //saved name 
     responseDto.setCardNumber("******4444"); // get last 4 digit of card 
     return responseDto; 
    } 
} 

class CreditCardInfoDto { 
    private String name; 
    private String cardNumber; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getCardNumber() { 
     return cardNumber; 
    } 

    public void setCardNumber(String cardNumber) { 
     this.cardNumber = cardNumber; 
    } 
} 

enter image description here

+0

ich weiß, dass aber meine Funktion Rückkehr nichts. In diesem Thread (wie wir in einigen Tutorial sehen können): http://stackoverflow.com/questions/12837907/what-to-return-if-spring-mvc-controller-method-doesn-return-value, sagte Biju Kunjummen es. Ich habe es mit HttpStatus.NO_CONTENT versucht und das funktioniert –

Verwandte Themen