我对 spring 如何绑定参数有一些问题。
在我的场景中,我想要一个只接受一个查询参数“q”的控制器方法:
@Controller
@RequestMapping("/home")
public class HomeController {
@RequestMapping
public void test(@RequestParam(value = "q") final String q) {
System.out.println("> " + q);
}
}
现在,如果我根据我的规范发送有效请求:
GET /home?q=cat
我得到预期的输出:
> cat
如果我发送的请求根据我的规范无效,但作为 http 请求仍然有效:
GET /home?q=cat&q=black
我得到了模棱两可和意想不到的结果(我知道为什么 spring 会这样做......数组绑定等 :) 但这仍然是一个惊喜。):
> cat,black
我不能使用这些参数,它们可能是无效的。但我没有简单的方法来验证请求。