2013-05-08 116 views
2

我想訪問If-Modified-Since頭中的時間戳,所以我可以實現條件GET。可以使用@RequestHeader註釋哪些類的方法參數

Spring控制器可以使用@RequestHeader註釋來指示Spring應該將HTTP頭的值作爲方法參數傳遞給處理程序方法。該參數必須是String?或者是否允許其他課程? Spring documentation意味着可以轉換long值。但是什麼樣的課程是允許的呢?

請問以下工作(使用Date)?

@RequestMapping(method = RequestMethod.GET, headers = {"If-Modified-Since" }) 
public final void conditionallyRetrieve(
    @RequestHeader("If-Modified-Since")final Date ifModifiedSince, 
    final HttpServletResponse response) { 
    ... 
} 

回答

2

具體來說,在你的榜樣,我想你可以使用DateTimeFormat驅動春天來進行轉換:

@RequestHeader("If-Modified-Since") 
    @DateTimeFormat(pattern = "ThePATTERN") final Date ifModifiedSince 
+0

可以'@ DateTimeFormat'可以適用於'@ Controller'方法參數?這個例子顯示它們可以,但它不是'@ RequestHeader'參數:http://static.springsource.org/spring/docs/3.0.0.RC3/reference/html/ch15s03.html – Raedwald 2013-05-08 14:13:35

+0

如果你正在使用Spring 3.1+,閱讀[這個問題](https://jira.springsource.org/browse/SPR-10105?focusedCommentId=86207&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-86207) ;它應該是可以的。 – nobeh 2013-05-08 14:21:44

+0

好找;該問題建議使用'@DateTimeFormat(pattern =「EEE,dd MMM yyyy HH:mm:ss'GMT'」)''。 – Raedwald 2013-05-08 14:29:01

相關問題