java - 请求参数为空的路径的 RequestMapping

标签 java spring rest

我需要有一个/jsp/login 和/jsp/login?error 的映射

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

这对于 spring 来说可行吗?

为了澄清上述内容,我已经有了代码:

@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,因为 required = false。如果 url 类似于/jsp/login?error=yes

,则错误 != 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。

关于java - 请求参数为空的路径的 RequestMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52210500/

相关文章:

rest - 通过 JIRA REST API 从自定义字段获取值

java - Spring 如何将 WebApplicationContext 的实例传递给 DispatcherServlet 构造函数?

java - Spring Boot Property Yml/Properties with List 结构

java - 如何对 hashmap 列表使用流过滤器? ArrayList<HashMap<字符串,对象>>

java - 如何在 spring-boot 中强制 Jackson2ObjectMapperBuilder?

spring - 使用 Spring Security 对现有和不存在的用户进行时不变查询

python - RESTful API 和谷歌分析

django - 如何创建基于 ID 的 PUT/POST,但在 DRF 中的响应中创建详细信息?

java - 在 Karate DSL 中,如何验证响应中的字段名称而不关心它们的值是什么

java - 尽管明确将其设置为空,但对 session 属性的引用未变为空