Spring MVC @RequestParam DefaultValue Не задано для параметра с пустым значением [duplicate]

1

Я вызываю URL-адрес и параметр отправки, как показано ниже:

 http://india.webinc.in:8080/caseManagement/caseView?lock=false&caseId= 

Он приземляется в Spring MVC ниже контроллера -

@RequestMapping(value = "/caseView", method = RequestMethod.GET)
public String caseView(
final HttpServletRequest request,   
@RequestParam(value = "caseId", defaultValue = "-1") final Integer caseId
){
System.out.println("request.getparameter(caseId)::" + request.getParameter("caseId"));
System.out.println("@RequestParam caseId::" + caseId);
if (caseId != -1) {
//do something
} else {
//do something else
} 
} 

И генерирует результат, как показано ниже в консоли -

request.getparameter(caseId)::
@RequestParam caseId::null
java.lang.NullPointerException

Теперь, как значение doc по умолчанию, можно использовать в качестве резервной копии, когда значение параметра запроса пуст, что может быть причиной пустого caseId не установлен на -1?

http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html
Msgstr "Значение по умолчанию, используемое в качестве резервной копии, когда значение параметра запроса не указано или пусто."

Для решения я уже исключил этот параметр caseId из url, однако мне любопытно узнать поведение defalut RequestParam.

Теги:
spring-mvc

1 ответ

0

Теперь, как значение doc по умолчанию, можно использовать в качестве резервной копии, когда значение параметра запроса пуст, что может быть причиной пустого caseId не установлен на -1?

Кажется, что до тех пор, пока параметр caseId присутствует среди параметров запроса вашего запроса, считается, что при условии значения "", таким образом, результат, с которым вы сталкиваетесь.

предоставлен или пуст

часть документации Spring может сбивать с толку, но вот еще один пример такого же поведения: возможно ли, чтобы пустые значения RequestParam использовали defaultValue?

  • 0
    m4rtin .. Спасибо! Я прошел этот пост ранее .. и я думаю, что проситель все еще остается неубедительным .. и то же самое со мной. Я думаю, что значение caseId пустое, поэтому defaultValue должно быть доступно в контроллере.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню