2013-10-09 11 views
6

In un controller quando si dovrebbe utilizzare @CookieValue?
Solo quando sai di essere sicuro che il cookie sarà presente?spring-mvc quando utilizzare @CookieValue

ho questo controllore:

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


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

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

    (...) 
} 

quando il cookie è impostato, non è un problema il metodo viene chiamato, ma quando il cookie non è impostato il metodo non viene chiamato e penso che non posso avere un altro metodo nel mio controller mappato allo stesso percorso.

(versione mio di primavera: 3.2.3)

+6

Hai provato a rendere opzionale il CookieValue? '@CookieValue (value =" myCookie ", required = false)' – Kal

+0

@Kal, grazie, mi vergogno tanto! –

+0

Siamo i benvenuti @Frederic – Kal

risposta

11

risposta da Kal nel commento, ho messo la risposta per contrassegnare la domanda come risposta/chiusura.

@CookieValue ha un parametro obbligatorio impostato su true per impostazione predefinita.

Quindi,

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

risolto il mio problema.

+0

In tal caso, contrassegna questa come risposta accettata, perché al momento la domanda è ancora senza risposta. –

+0

E devi dare ripetizioni a Kal;) – webmaster

2

Suppongo che sia possibile utilizzare anche l'attributo "defaultValue". E 'simile:

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

A mio parere:

biscotto default - la pelle logica le seguenti dichiarazioni di esame se ha biscotto o non perché ha sempre un (default o no)

cookie required - la necessità logica di verificare se ha cookie e l'azione corresponsata.

Problemi correlati