具有空请求参数的路径的请求映射

我需要为 /jsp/login 和 /jsp/login?error 设置一个映射


请注意,我不能使用 /jsp/login?error=someval 然后检查 param 是否具有该值或默认值。= 在这种情况下不允许在参数之后。


这对弹簧可行吗?


为了澄清上述内容,我已经将代码如下:


@RequestMapping("/jsp/login")

public String login(@RequestParam(value = "error", required = false) String error, Map<String, Object> model) {

        if(error != null && !error.isEmpty()) {

            model.put("message", "wrong user id or password");

        }

        return "login";

}

所以请求 /jsp/login 和 /jsp/login?error 都被映射为 error = null as required = false。如果 url 类似于 /jsp/login?error=yes,则错误 != null


要求:error != null 即使 /jsp/login?error 没有任何参数值


至尊宝的传说
浏览 144回答 2
2回答

qq_遁去的一_1

对的,这是可能的@RequestMapping (value = "/jsp/login", method = RequestMethod.GET)public String showLoginWindow(@RequestParam(value = "error", required = false) String errorStr) throws LoginException {...}重要的部分是required = false,所以如果你调用/jsp/loginerrorStr 的值为 null。

慕莱坞森

是 - 您可以有可选的请求参数。&nbsp; &nbsp; @RequestMapping(value = "/jsp/login", method = RequestMethod.GET)&nbsp; &nbsp; public @ResponseBody String handleLogin(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HttpServletRequest req,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @RequestParam(value="error",required = false) String error) {&nbsp; &nbsp; &nbsp; &nbsp; //TODO: write your code here&nbsp; &nbsp; &nbsp; &nbsp; return "success";&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java