2013-06-04 6 views
5

Di seguito è riportato un punto finale POST nel mio servizio MVC REST di primavera. Voglio utilizzare il lavoro di frame di validazione a molla per assicurarmi che la lista che ricevo non sia vuota. Come lo faccio? Devo fornire il bean wrapper a circa listOfLongs?Come convalidare il parametro di richiesta se non è un bean in Spring MVC?

@RequestMapping(value = "/some/path", method = RequestMethod.POST) 
    @ResponseBody 
    public Foo bar(@Valid @NotEmpty @RequestBody List<Long> listOfLongs) { 

    /* if (listOfLongs.size() == 0) { 
      throw new InvalidRequestException(); 
     } 
    */ 

     // do some useful work 
    } 

Quale dovrebbe essere il corpo della richiesta?

1) [123,456,789] 
2) { listOfLongs : [123,456,789]} 

risposta

4

Fornire un bean wrapper è una buona pratica.

class LongList { 

@NotEmpty 
private List<Long> listOfLongs; 

// Setters and Getters ... 

} 

Poi, la richiesta di corpo dovrebbe essere { listOfLongs : [123,456,789]}

@RequestMapping(value = "/some/path", method = RequestMethod.POST) 
@ResponseBody 
public Foo bar(@Valid @RequestBody LongList listOfLongs) { 

    // do some useful work 
} 
+0

Come convalidare, se il parametro è solo una stringa? E non voglio avvolgere. – Cengiz

+0

Perché questa buona pratica? –

Problemi correlati