如何根据需要标记Spring MVC参数

gre*_*rep 4 spring spring-mvc spring-validator

我在弹簧控制器中有这种方法

@RequestMapping(value = "/updateArticle", method = RequestMethod.POST)
@ResponseBody
public void updateArticle(Long id,  String name, String description) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

我希望输入ID和姓名。换句话说,如果它们是空值,则必须引发异常。

我怎样才能做到这一点?对此有任何注释吗?

谢谢

Oom*_*ity 7

您必须在控制器中添加带有所需 true 注释的 RequestParam

@RequestMapping(value = "/updateArticle", method = RequestMethod.POST)
@ResponseBody
public void updateArticle(@RequestParam(value="id",required=true) long id,@RequestParam(value="name",required=true)  String name, @RequestParam(value="description",required=true) String description) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

当您从浏览器中点击此控制器 URL 时,如果其中一个参数是 Mission,那么您将进入incorrect syntax error浏览器


mac*_*ias 5

就在这里。@RequestParam(required=true)请参阅文档

默认情况下,Required标志甚至为true,因此您需要做的是:

@RequestMapping(value = "/updateArticle", method = RequestMethod.POST)
@ResponseBody
public void updateArticle(@RequestParam Long id, @RequestParam String name, @RequestParam String description) {
  ...
}
Run Code Online (Sandbox Code Playgroud)