<分区>
我正在调用 URL 并发送参数如下 -
http://india.webinc.in:8080/caseManagement/caseView?lock=false&caseId=
It is landed into Spring MVC's below controller method -
@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
现在根据文档默认值可以用作请求参数值为空时的回退,那么空 caseId 未设置为 -1 的原因可能是什么?
http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html
"The default value to use as a fallback when the request parameter value is not provided or empty."
对于解决方案,我已经从 url 中排除了这个 caseId 参数,但是我很想知道 RequestParam 的默认行为。