2015-02-24 10 views
13

Jak ustawić opcjonalne ciało w wywołaniach REST API podczas korzystania z adnotacji @RequestBody na wiosnę?Użyj @RequestBody z opcjonalną treścią w najnowszej wersji Spring v4

Najnowsza wersja Springa, jeśli używasz adnotacji @RequestBody, powoduje, że klient wysyła ciało bez przerwy.

Próbowałem @RequestBody (required=false) ale to nie zadziałało & nadal moje żądanie jest zerowe.

W jaki sposób mogę uzyskać żądanie przekonwertowania żądania na odpowiedni wymagany obiekt bez konieczności wprowadzania body?

Dla np:

@RequestMapping(value="/add/employee", method=RequestMethod.POST) 
public void addEmployee(@RequestBody Employee employee){ 
    ..... 
} 

Tutaj, tutaj chcę dodać pracownika za pomocą POST, ale bez ciała. Jak mogę to zrobić? Najnowsza wersja sprężyny rzuca błąd ciała brakuje, jeśli wysyłam puste ciało ...

Dzięki!

Odpowiedz

19

@Santosh, nie jestem pewien, który argument jest wymagany. Mike wspomniał już, że próbował użyć numeru @RequestBody (required=false), a żądanie wciąż było puste. Być może będziesz w stanie podać więcej przykładów, na przykład &.

@Mike, prawdopodobnie możesz spróbować mieć inny oddzielny konwerter, który będzie służyć Twojemu celowi.

Uwaga: Zauważyłem ten sam problem z wiosną v4.1.6 & Mike mógł używać tego, ponieważ wspomniał, że używa najnowszej wersji.

3

Podejrzewam, że używasz wersji sprężystej powyżej wersji 3.2, ponieważ wystąpił problem z wersją. @RequestBody should have a required parameter to allow a request body to be optional

rzucić okiem na poniższy link Spring @RequestBody Anotation

@RequestBody organizm pobiera i argumentów wymaganej co jest prawdą domyślnie. Określając ją na false pomoże

public abstract logiczna wymagane

czy wymagana jest zawartość ciała. Domyślne jest prawdziwe, prowadzące do wyjątku zgłoszonego w przypadku braku treści treści. Przełącz na wartość false, jeśli wolisz, aby wartość null była przekazywana, gdy zawartość treści jest pusta.

Powiązane problemy