Я вызываю 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.
Теперь, как значение doc по умолчанию, можно использовать в качестве резервной копии, когда значение параметра запроса пуст, что может быть причиной пустого caseId не установлен на -1?
Кажется, что до тех пор, пока параметр caseId
присутствует среди параметров запроса вашего запроса, считается, что при условии значения "", таким образом, результат, с которым вы сталкиваетесь.
предоставлен или пуст
часть документации Spring может сбивать с толку, но вот еще один пример такого же поведения: возможно ли, чтобы пустые значения RequestParam использовали defaultValue?