2012-04-06 33 views
1

我已將Spring從3.0.5升級到3.1.1,並偶然發現一個奇怪的問題。以下代碼在以前的版本中運行良好:Spring MVC中的響應實體3.1.1

@RequestMapping("/getPeople") 
public Object getPeople() 
    { 
     HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.set("MyResponseHeader", "MyValue"); 
     return new ResponseEntity("Hello World", responseHeaders, HttpStatus.OK); 
    } 

但是,使用最新版本時出現404錯誤。要解決此我不得不提一下返回類型ResponseEntity的方法:

@RequestMapping("/getPeople") 
    public ResponseEntity getPeople() 
     { 
      HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.set("MyResponseHeader", "MyValue"); 
      return new ResponseEntity("Hello World", responseHeaders, HttpStatus.OK); 
     } 

這是一個可以接受的解決辦法還是我錯了,在這裏做什麼?

+1

也許這將幫助:http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-ann-httpentity – vacuum 2012-04-08 20:24:48

回答

0

嘗試下面的代碼。 @ResponseBody註釋類似於@RequestBody。此註釋可以放在方法上,並指示返回類型應直接寫入HTTP響應主體(而不是放置在模型中,或者解釋爲視圖名稱)。

@RequestMapping("/getPeople") 
@ResponseBody 
public Object getPeople() 
    { 
     HttpHeaders responseHeaders = new HttpHeaders(); 
     responseHeaders.set("MyResponseHeader", "MyValue"); 
     return new ResponseEntity("Hello World", responseHeaders, HttpStatus.OK); 
    } 
+0

返回responseEntity給更靈活,並且不需要@ResponseBody註釋。 – Vaibhav 2012-12-08 13:05:17