Browse Source

fixed @RequestParam(required=false) regression for @InitBinder methods (SPR-6878)

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3019 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Juergen Hoeller 16 years ago
parent
commit
94ff6e5fac
  1. 12
      org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java
  2. 2
      org.springframework.web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodInvoker.java

12
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java

@ -1479,11 +1479,13 @@ public class ServletAnnotationControllerTests {
} }
@InitBinder @InitBinder
public void initBinder(@RequestParam("param1") T p1, int param2) { public void initBinder(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
} }
@ModelAttribute @ModelAttribute
public void modelAttribute(@RequestParam("param1") T p1, int param2) { public void modelAttribute(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
} }
} }
@ -1516,12 +1518,14 @@ public class ServletAnnotationControllerTests {
@Override @Override
@InitBinder @InitBinder
public void initBinder(@RequestParam("param1") String p1, int param2) { public void initBinder(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
} }
@Override @Override
@ModelAttribute @ModelAttribute
public void modelAttribute(@RequestParam("param1") String p1, int param2) { public void modelAttribute(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
} }
} }

2
org.springframework.web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodInvoker.java

@ -358,7 +358,7 @@ public class HandlerMethodInvoker {
RequestParam requestParam = (RequestParam) paramAnn; RequestParam requestParam = (RequestParam) paramAnn;
paramName = requestParam.value(); paramName = requestParam.value();
paramRequired = requestParam.required(); paramRequired = requestParam.required();
paramDefaultValue = requestParam.defaultValue(); paramDefaultValue = parseDefaultValueAttribute(requestParam.defaultValue());
break; break;
} }
else if (ModelAttribute.class.isInstance(paramAnn)) { else if (ModelAttribute.class.isInstance(paramAnn)) {

Loading…
Cancel
Save