java - 请求参数为空的路径的 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
解决方案
对的,这是可能的
@RequestMapping (value = "/jsp/login", method = RequestMethod.GET)
public String showLoginWindow(@RequestParam(value = "error", required = false) String errorStr) throws LoginException {...}
重要的部分是required = false
,因此如果您调用/jsp/login
errorStr ,则值为 null。
推荐阅读
- jquery - 如何不断检查可见图像的高度?
- vue.js - 在 Vue CLI 3 中从原始图像创建 webp 图像(作为替代版本)
- react-native - react-native-flexi-radio-button onselect 不起作用
- javascript - 使用 jQuery 更改多个标签的填充颜色
- security - 内联运行简短的 asm 脚本以进行动态分析
- c# - C# Selenium 上传字节数组而不是文件
- php - PHP:我的正则表达式代码不能在本地工作,但在 regex101 上工作正常
- azure-cognitive-search - 有没有办法在 Azure 搜索上“调试”分数?
- visual-studio-code - 无法在其他视图列中获得可见的文本编辑器
- sass - 在 sass 中设置扩展输出样式不起作用