2013-08-30 16 views
24

Ich habe ein Verfahren, in dem ich möchte Antwort-Header Cache-Control und Pragma eingestellt werden: -Wie Antwort-Header im Frühjahr mvc setzen

public String addUser(@Valid User user, BindingResult bindingResult) 
{ 
    if(bindingResult.hasErrors()) 
    { 
     bindingResult.getFieldError(); 
     return"edit"; 
    } 
    return "redirect:/welcome/profile/"+user.getName(); 
} 

Bei diesem Verfahren i-Cache-Steuerung und Pragma festlegen möge, wie wir tun in einfachen Servlet-Code HttpServletResponse Aufruf setHeader Methode: -

response.setHeader("Cache-Control","no-cache,no-store,must-revalidate"); 
    response.setHeader("Pragma","no-cache"); 
    response.setDateHeader("Expires", 0); 

I Frühjahr docs gesucht und keinen direkten Weg, es zu tun finden konnte, aber ich fand diese: -

@RequestMapping("/something") 
public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException 
{ 
    String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader")); 
    byte[] requestBody = requestEntity.getBody(); 
    HttpHeaders responseHeaders = new HttpHeaders(); 
    responseHeaders.set("MyResponseHeader", "MyValue"); 
    return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED); 
} 

Aber ich weiß nicht, wie es

+0

_Aber ich weiß nicht, wie man es benutzt_ Scheint, dass Sie es gut verwenden. –

Antwort

35

Wenn Sie Header setzen für jede Antwort für einen Controller verwenden möchten Sie @ModelAttribute Annotation verwenden können.

@ModelAttribute 
public void setVaryResponseHeader(HttpServletResponse response) { 
    response.setHeader("Vary", "Accept"); 
}  
14
public String addUser(@Valid User user, BindingResult bindingResult,HttpServletRequest request,HttpServletResponse response) 
    { 
     if(bindingResult.hasErrors()) 
     { 
      bindingResult.getFieldError(); 
      return"edit"; 
     } 
     response.setHeader("Cache-Control","no-cache,no-store,must-revalidate"); 
     response.setHeader("Pragma","no-cache"); 
     response.setDateHeader("Expires", 0); 
     return "redirect:/welcome/profile/"+user.getName(); 
    }