2011-04-12 73 views
2

如何從bean訪問響應對象?要獲取請求對象,我使用以下內容。Spring MVC - 響應

ServletRequestAttributes attr = (ServletRequestAttributes) 
     RequestContextHolder.currentRequestAttributes(); 

是否有類似於上面的響應對象?

+1

這裏檢查Bozho的答案:在這裏輸入鏈接的描述(http://stackoverflow.com/a/6984252/433789「@Autowired HttpServletResponse的」) – sdouglass 2012-06-04 22:01:59

回答

4

如果您處於Web應用程序上下文中(它看起來像您),您可以在HttpServletRequest或HttpServletResponse中自動連線。

來自當前請求範圍的請求/響應將被注入。

@Component 
public class SomeComponentInAWebApplicationContext { 

    @Autowired 
    private HttpServletRequest request; 

    @Autowired 
    private HttpServletResponse response; 

    ... 
} 
+3

我看到答案已被接受,但我不清楚這可能會奏效 - 在Spring中,這些依賴是從哪裏注入的?嘗試一下,它會按預期失敗:引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到匹配依賴關係的[javax.servlet.http.HttpServletResponse]類型的匹配bean。我錯過了什麼嗎? – Eugen 2011-12-28 12:42:01

+2

是的這不起作用,對我來說同樣的問題。 – 2012-09-27 08:08:37

+1

組件必須是WebApplicationContext的一部分,即從-servlet.xml上下文啓動的組件。 – 2012-10-01 23:29:17