2012-01-21 11 views
15

Bir sayfaya basit bir yazı görüntülemek ve Content-Typetext/plain olarak dönmek istiyorum.Spring MVC 3 İade İçerik Türü: text/plain

Aşağıdaki kodu kullanarak sayfada düz metin görüyorum, ancak Content-Type dönüşü hala text/html'dur.

Bunu nasıl düzeltebilirim?

NOT: Spring MVC ile Fayans kullanıyorum. Döndürülmüş "m.health", sadece aşağıdaki 1 satırı içeren bir health.jsp ile eşlenen bir fayans def'ini gösterir.

GÜNCELLEME NOT: Ben HTTP Başlığı isteğinde Content-Type veya Accept değerler üzerinde hiçbir kontrole sahip. Benim tepkisi olursa olsun gelir isteği ne tür text/plain dönmek istiyorum

Denetleyici:.

@RequestMapping(value = "/m/health", method = RequestMethod.GET, headers = "Accept=*") 
public String runHealthCheck(HttpServletResponse response, HttpServletRequest request, Model model) throws Exception { 
    model = executeCheck(request, response, TEMPLATE, false, model); 
    model.addAttribute("accept", "text/plain"); 
    response.setContentType("text/plain"); 
    response.setCharacterEncoding("UTF-8"); 
    return "m.health"; 
} 

JSP:

$ {status}

cevap

7

Sen deneyebilirsiniz @RequestMapping ekinizin produces değerini text/plain ile ayarlamak için. Spring belgeleri bunu sample olarak listeler.

+1

Ben Content-Type' 'request' ayarlanır neyi' üzerinde hiçbir kontrole sahip ve istek türü ise uymayacak üretir içinde belirttiğim şey değil. İstek türünün ne olduğu önemli değil, 'text/plain' ifadesini kullanmak istiyorum. – Ali

46

Eğer @ResponseBody ile ayrıca senin yöntemini açıklama eğer çalışması gerekir:

@RequestMapping(value = "/", 
       method = RequestMethod.GET) 
@ResponseBody 
public String plaintext(HttpServletResponse response) { 
    response.setContentType("text/plain"); 
    response.setCharacterEncoding("UTF-8"); 
    return "TEXT"; 
} 
+6

Bu soruyu ziyaret eden herkes için, Ali, Ali'yi kabul ettikten sonra cevabını ekledi, ancak ek açıklamaları kullanırken bu doğru bir yaklaşımdır. Bu basit ve iyi çalışıyor. –

+0

Bu doğru cevap olarak kabul edilmelidir. –

+8

Çalışmıyor. Eğer @ResponseBody kullanırsanız, Spring İçerik türünü "application/json" ile yeniden yazacaktır –