2012-01-02 12 views
7

Powiel możliwe:
Return only string message from Spring MVC 3 ControllerChcesz mój kontroler sprężyny, aby powrócić ciąg bez widoku

Mój kontroler wiosna ma punkt końcowy, gdzie chcę tylko:

1. set the http response code 
2. return a string back, don't need to render a .jsp view page or anything. 

Więc będzie chciał ustawić kod statusu http na 200 OK lub 500 itd. Po prostu wróć ciąg taki jak "OK".

Jak mogę to zrobić, czy jestem zmuszony do renderowania strony widoku .jsp?

Odpowiedz

11

Użyj @ResponseBody adnotacji:

@RequestMapping(value="/sayHello", method=GET) 
@ResponseBody 
public String whatever() { 
    return "Hello"; 
} 

Zobacz @ResponseBody ref docs dla dalszych szczegółów.

Możesz skorzystać z adnotacji @ResponseStatus, aby ustawić kod, zamiast bezpośrednio używać numeru HttpServletResponse.

+0

cóż, ustawiam status w zależności od przepływu kodu, dziękuję. – Blankman

+0

@Blankman Tak, będziesz potrzebować odmiany 'HttpServletResponse'. –

+0

Musisz dodać produkuje = "text/plain" do @RequestMapping, w przeciwnym razie Content-Type odpowiedzi pozostanie text/html –

12

Nie, nie musisz używać widoku. Jeśli używasz nowszej wersji Spring, możesz użyć adnotacji @ResponseBody. Dla porównania patrz documentation.

Przykład:

@Controller 
@RequestMapping(value = "/someUrl", method = RequestMethod.GET, produces="text/plain") 
@ResponseBody 
public String returnSimpleMessage() {  
    return "OK"; 
} 

Można również użyć HttpServletResponse jako parametr ustawić status HTTP pożądany.

Powiązane problemy