@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 :
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.
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); }
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); }
il n'y a pas de defaultValue
dans @PathVariable
il n'y a rien de tel que defaultValue
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); }
stackoverflow.com/questions/41620395/…