java – @RequestParam在Spring MVC中处理可选参数

弹簧控制器可以处理这两种请求吗?

1) http://localhost:8080/submit/id/ID123432?logout=true
2) http://localhost:8080/submit/id/ID123432?name=sam&password=543432

如果我定义一个类型的单个控制器:

 @RequestMapping (value = "/submit/id/{id}", method = RequestMethod.GET,   
 produces="text/xml")
public String showLoginWindow(@PathVariable("id") String id,
                              @RequestParam(value = "logout", required = false) String logout,
                              @RequestParam("name") String username,
                              @RequestParam("password") String password,
                              @ModelAttribute("submitModel") SubmitModel model,
                              BindingResult errors) throws LoginException {...}

不接受具有“注销”的HTTP请求。

如果我定义了两个控制器来分别处理每个请求,Spring会出现异常“There is already’Controller’bean method … mapped”。

您还需要为name和password请求参数指定required = false。这是因为,当你只提供logout参数,它实际上期望的名称和密码,以及它们仍然是强制性的。

它工作时,你刚刚给了名称和密码,因为注销不是一个强制参数感谢required = false已经给出注销。

http://stackoverflow.com/questions/22373696/requestparam-in-spring-mvc-handling-optional-parameters

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – @RequestParam在Spring MVC中处理可选参数