Как установить значение по умолчанию для переменной пути? - PullRequest
0 голосов
/ 15 марта 2020
@GetMapping(value = "/{locale}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getLocale(@PathVariable("locale") String locale) {
    return new ResponseEntity<>(locale, HttpStatus.OK);
}

Я хочу, чтобы языковой стандарт был нулевым, я могу установить в нем значение по умолчанию "engli sh".

Ответы [ 4 ]

2 голосов
/ 17 марта 2020

По умолчанию PathVariable требуется, но вы можете установить его необязательно:

@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 голосов
/ 16 марта 2020

Вы не можете предоставить значение по умолчанию для переменной пути пружины на данный момент.

Вы можете сделать следующее очевидное:

@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);
}

Но более уместным является использование Spring i18n.CookieLocaleResolver, так что вам больше не нужна эта переменная пути:

    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
        <property name="defaultLocale" value="en"/>
    </bean>
0 голосов
/ 16 марта 2020

Вам просто нужно указать значение по умолчанию

@GetMapping(value = "/{locale}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getLocale(@PathVariable("locale", defaultValue="english") String locale) {
    return new ResponseEntity<>(locale, HttpStatus.OK);
}
0 голосов
/ 15 марта 2020

Вы можете использовать обязательный атрибут false, а затем можете проверять нулевое или пустое строковое значение. См. эту тему

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

, а затем проверьте наличие нулевой или пустой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...