I tried several examples from the network and cannot get Spring to check my query string parameter. It does not seem to execute REGEX / fail.
package my.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; import javax.validation.constraints.Pattern; import static org.springframework.web.bind.annotation.RequestMethod.GET; @RestController public class MyController { private static final String VALIDATION_REGEX = "^[0-9]+(,[0-9]+)*$"; @RequestMapping(value = "/my/{id}", method = GET) public myResonseObject getMyParams(@PathVariable("id") String id, @Valid @Pattern(regexp = VALIDATION_REGEX) @RequestParam(value = "myparam", required = true) String myParam) {
Current behavior
PASS - /my/1?myparam=1 PASS - /my/1?myparam=1,2,3 PASS - /my/1?myparam= PASS - /my/1?myparam=1,bob
Desired behavior
PASS - /my/1?myparam=1 PASS - /my/1?myparam=1,2,3 FAIL - /my/1?myparam= FAIL - /my/1?myparam=1,bob
thanks
java spring spring-boot spring-mvc
ptimson
source share