首页 > 解决方案 > 请求参数为空的路径的 RequestMapping

问题描述

我需要为 /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,则 error != null

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

标签: javaspringrest

解决方案


对的,这是可能的

@RequestMapping (value = "/jsp/login", method = RequestMethod.GET)
public String showLoginWindow(@RequestParam(value = "error", required = false) String errorStr) throws LoginException {...}

重要的部分是required = false,因此如果您调用/jsp/loginerrorStr ,则值为 null。


推荐阅读