2011-12-06 30 views
5

Spring MVC 3 kullanarak RESTful web hizmetleriyle bir web uygulaması oluşturuyorum. Web hizmetleri uygulamalar tarafından kullanılacaktır, bu nedenle hiçbir görünüm için hiçbir isteği gerçekten çözmemelidir. Hiçbir istekte bulunulmaması için sunucu bağlamında belirtmenin herhangi bir yolu var mı? Şu anda RESTful Uygulama görünümünde görünümü özme

, ben var: Ben denemeden bilmek

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

jsp klasörde buna adlı bir görünüme herhangi bir isteği çözmek için. Ancak, bunu kaldırırsam, uygulama varsayılan bir görünüm çözümleyicisi kullanmaya çalışır.

Bu konuda endişeliyim nedeni benim uygulama günlükleri (iyi çalışıyor olsa bile) şu mesajlarla dolu olacak olmasıdır: InternalViewResolver ile

SEVERE: Servlet.service() for servlet [DispatcherServlet] in context with path [/vouchd] threw exception [Circular view path [signup]: would dispatch back to the current handler URL [/vouchd/signup] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)] with root cause 
javax.servlet.ServletException: Circular view path [signup]: would dispatch back to the current handler URL [/vouchd/signup] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) 

ya:

WARN [http-bio-8080-exec-4] (DispatcherServlet.java:1057) - No mapping found for HTTP request with URI [/app/WEB-INF/jsp/call.jsp] in DispatcherServlet with name 'DispatcherServlet' 
İki kötülüğün daha iyi olduğunu tahmin ettiğim

. Günlük kaydı WARN seviyesini kapatmak istemiyorum.

cevap

7

@ResponseStatus ile deneyin. Bu kod hiçbir içerik ile 204 döndürür ve görünümü atlanan çözme:

@ResponseStatus(NO_CONTENT) 
void noView() { 
    //... 
} 

Eğer ham verileri dönmek ve sadece JSON veya XML bunu seri hale getirmek istiyorsanız, kullanmak @ResponseBody:

@ResponseBody 
MyPojo noView() { 
    return new MyPojo(); 
} 
+0

Hala JSON verilerini dönen talep eden uygulamaya. Bu bunu reddetmez mi? –

+0

@NicoHuysamen: Üzgünüm, yanlış anlaşıldım * Hiçbir istek herhangi bir görünümde yeniden görünmemelidir *, güncellememe bakın. –

+0

müthiş, teşekkürler! –

İlgili konular