当前位置: 首页 > 知识库问答 >
问题:

Spring MVC中的@RequestParam处理可选参数

萧晔
2023-03-14

Spring控制器有可能同时处理这两种请求吗?

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 {...}

共有1个答案

司空海荣
2023-03-14

您还需要为namepassword请求参数指定required=false。这是因为,当您只提供logout参数时,它实际上需要namepassword并且它们仍然是必需的。

当您只给出namepassword时,它就起作用了,因为logout不是强制参数,这是因为required=false已经为logout给定了required=false

 类似资料:
  • 我有一个接口方法,可以如下所示调用- 它可以接受类型的param,这样我就可以获取特定的结果。 现在,如果将paramIds保留为空,如下所示,Spring MVC将创建,大小为0,并且不会返回结果。 这是我的注释 我试图删除并使用,但无法将设置为。 现在,我将注释更改为,并在dao中添加代码将“none”处理为null--想知道是否有更好的方法来解决这个问题。 提前谢了。

  • 问题内容: 我在SpringData中使用QueryDSL。我说表,我创建了实体类, 我写了以下 服务 方法 如上所述,我评论了。如何使用 QueryDSL 在可选参数 QueryDSL 使用Spring的数据? 谢谢 :) 问题答案: 可以用作布尔表达式的动态生成器:

  • 我将QueryDSL与SpringData一起使用。我有表say,并创建了实体类say,我编写了以下服务方法 与上面一样,我注释了。如何在使用Spring数据的QueryDSL中对可选参数使用QueryDSL?

  • 问题内容: 我希望它能够仅使用lira_cbt作为参数(执行x),或者同时使用lira_cbt和eur_hedge(执行y)运行。可以使用sys.argv实现吗? 问题答案: 只需使用长度

  • 问题内容: 只是想知道是否有一种更优雅或更标准的方式来处理可选参数,或者是否必须检查每个参数是否为空。我有10多个可选参数,因此变得有点难看。 理想情况下,我想是这样的bash命令:。 问题答案: 编写这样的实用程序

  • 我基本上想有一个可选的完成处理器,没有参数被传递回来。这是我目前掌握的情况,但显然是错误的。 我不想在完成块中传递任何参数。我只想知道网络调用何时完成,以便刷新UI。我不想在这里刷新UI,因为我希望它充当刷新数据的通用函数。我之所以希望完成处理程序是可选的,是因为有时候刷新完成后我不需要做任何事情。 我也很困惑“逃离”是什么意思。当我做这样的事情时,我通常会有它,但任何清晰都会很好。我在网上做了一