0
votes

Comment définir la valeur par défaut d'une variable de chemin?

@GetMapping(value = "/{locale}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getLocale(@PathVariable("locale") String locale) {
    return new ResponseEntity<>(locale, HttpStatus.OK);
}
I want if locale is null, I can set a default value "english" in it.

4 Réponses :


0
votes

Vous pouvez utiliser l'attribut false requis, puis vérifier la valeur de chaîne nulle ou vide. Reportez-vous ce fil

getLocale(@PathVariable(name ="locale", required= false) String locale

Et puis vérifiez la valeur nulle ou chaîne vide.


0 commentaires

0
votes

Vous ne pouvez pas fournir de valeur par défaut à la variable de chemin de ressort pour le moment.

Vous pouvez faire la chose évidente suivante:

    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
        <property name="defaultLocale" value="en"/>
    </bean>

Mais il est plus approprié d'utiliser Spring i18n .CookieLocaleResolver, pour que vous n'ayez plus besoin de cette variable de chemin:

@GetMapping(value = "/{locale}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getLocale(@PathVariable("locale") String locale) {
    locale = locale == null? "english": locale;
    return new ResponseEntity<>(locale, HttpStatus.OK);
}


0 commentaires

-1
votes

Il vous suffit de fournir la valeur par défaut

@GetMapping(value = "/{locale}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getLocale(@PathVariable("locale", defaultValue="english") String locale) {
    return new ResponseEntity<>(locale, HttpStatus.OK);
}


2 commentaires

il n'y a pas de defaultValue dans @PathVariable


il n'y a rien de tel que defaultValue



2
votes

Par défaut, PathVariable est requis mais vous pouvez le définir facultatif comme:

@GetMapping(value = "/{locale}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getLocale(@PathVariable(name="locale", required= 
false) String locale) {
//set english as default value if local is null   
locale = locale == null? "english": locale;
return new ResponseEntity<>(locale, HttpStatus.OK);
}


0 commentaires