2013-10-09 45 views
6

在控制器何時應該使用@CookieValue?
只有當你知道你確定cookie會出現時?spring-mvc何時使用@CookieValue

我有這樣的控制器:

@Controller 
@RequestMapping("my") 
public class MyController { 


    @RequestMapping("") 
    public ModelAndView index(@CookieValue("myCookie") String cookie, 
         Map<String, Object> model){ 

    log.info("My cookie {}", cookie); 

    (...) 
} 

當Cookie設置,沒有問題的方法被調用,但是當cookie不會設置方法不叫,我想我不能再有一個方法在我的控制器映射到相同的路徑。

(我的版本春:3.2.3)

+6

您是否嘗試過讓CookieValue成爲可選項? '@CookieValue(value =「myCookie」,required = false)' – Kal

+0

@Kal,gee謝謝我感到很慚愧! –

+0

歡迎您@Frederic – Kal

回答

11

在評論回答了卡爾,我把答案標記了一個問題,回答/關閉。

@CookieValue有一個默認設置爲true的必需參數。

所以,

@CookieValue(value="myCookie", required=false) 

解決我的問題。

+0

在這種情況下,您應該將此標記爲已接受的答案,因爲此時問題仍未得到答覆。 –

+0

你必須給代表Kal;) – webmaster

2

我想你也可以使用屬性「defaultValue」。 它看起來像:

@CookieValue(value="name", defaultValue="someValue") 
1

在我看來:

餅乾default - 邏輯隱藏從考試下面的語句是否擁有Cookie或不是因爲它總是有一個(默認或者沒有)

cookie required - 邏輯上需要檢查它是否有cookie並執行相應的操作。