【发布时间】:2016-12-01 13:53:33
【问题描述】:
我尝试了一些来自网络的示例,但无法让 Spring 验证我的查询字符串参数。似乎没有执行 REGEX / 失败。
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) {
// Do Stuff!
}
}
当前行为
PASS - /my/1?myparam=1
PASS - /my/1?myparam=1,2,3
PASS - /my/1?myparam=
PASS - /my/1?myparam=1,bob
期望的行为
PASS - /my/1?myparam=1
PASS - /my/1?myparam=1,2,3
FAIL - /my/1?myparam=
FAIL - /my/1?myparam=1,bob
谢谢
【问题讨论】:
-
目前的实际行为是什么?
-
嗨@HarshilSharma 我已经添加了这个。干杯
-
谢谢@AshwaniTiwari,正则表达式不是问题。它没有被评估
-
你必须添加
和 跨度>
标签: java spring spring-mvc spring-boot