31 votes

paramètre POST en option au printemps MVC?

J'ai le code suivant:

 @RequestMapping(method = RequestMethod.POST)
public ModelAndView editItem(String name, String description)
 

Cependant, parfois, la description n'est pas transmise (c'est un exemple simplifié que le vrai), et je voudrais rendre la description facultative, peut-être en remplissant une valeur par défaut si aucune n'est transmise.

Quelqu'un a une idée de comment faire ça?

Merci beaucoup!

Jason

126voto

Slava Semushin Points 5710

Si vous êtes à l'aide de Spring MVC 3.0 ou supérieur alors juste defaultValue paramètre de @RequestParam:

public ModelAndView editItem(@RequestParam(value = "description", defaultValue = "new value") String description)

Dans Spring MVC, 2.5, je vous suggère de marque de valeur required = false et de vérifier leur contre valeur null manuellement:

public ModelAndView editItem(@RequestParam(value = "description", required = false) String description) {
    if (description == null) {
        description = "new value";
    }
    ...
}

Voir également la documentation correspondante sur @RequestParam annotation.

18voto

DwB Points 14687

Au lieu d'utiliser @RequestParam pour l'option paramètres, prend un paramètre de type org.springframework.web.context.request.WebRequest. Par exemple,

@RequestMapping(method = RequestMethod.POST)
public ModelAndView editItem(
 @RequestParam("name")nom de la Chaîne,
 org.springframework.web.contexte.demande.WebRequest webRequest)
{
 String description = webRequest.getParameter("description");

 si (description != null)
{
 // paramètre optionnel est présent
}
d'autre
{
 // paramètre optionnel n'est pas là.
}
}

Note: Voir ci-dessous (valeur par défaut et doit) d'un moyen de résoudre ce sans l'aide d'un WebRequest paramètre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X