【问题标题】:How to set RequestMapping default/required value for URL?如何为 URL 设置 RequestMapping 默认/必需值?
【发布时间】:2015-12-25 18:17:56
【问题描述】:

以下 URL 查询数据库并使用 requestParam 正确返回所有值,如下所示:

    http://localhost:8080/app/locateUser/search?firstname=John&lastname=Clay&id=2

    @RequestParam(value = "firstname") String firstname,
    @RequestParam(value = "lastname") String lastname,
    @RequestParam(value = "id" ) int id

现在我想像这样将姓氏设为可选(从 URL 中删除):

http://localhost:8080/app/locateUser/search?firstname=John&id=2

http://localhost:8080/app/locateUser/search?firstname=John&lastname=&id=2

如何使网址可选?我希望能够在 URL 字符串中查询没有姓氏的数据库。

这就是我所拥有的:

    @RequestParam(value = "firstname") String firstname,
    @RequestParam(value = "lastname" defaultValue = "lname") String lastname,
    @RequestParam(value = "id" ) int id

我也试过了

   @RequestParam(value = "lastname" required=false) String lastname,

似乎都不起作用。我错过了什么?

【问题讨论】:

  • 它应该与required = false一起使用,向我们展示您的完整方法签名和您遇到的错误,这可能有助于了解您的问题
  • 什么不起作用...当required=false 然后你得到一个不为空的空字符串时,你当然必须做一些进一步的事情来忽略查询中的空参数。 .
  • 我认为这个问题已经被stackoverflow.com/questions/22373696/…完成了

标签: java spring hibernate spring-mvc


【解决方案1】:

spring 中请求参数默认为required=true。此外,您应该指定其他请求参数所需的情况。

您应该确定,您是否部署了最新的战争文件。而且您似乎在value 参数之后有一个错字,您需要用comma 将它们分开。

【讨论】:

    【解决方案2】:

    更新

    事实证明,带有 defaultValue 的值必须在 Param URL 中的最后一个,就像这样。之后一切正常。如果姓氏不存在,则 URL 有效。谢谢。

    @RequestParam(value = "firstname") String firstname,
    @RequestParam(value = "id" ) int id,
    @RequestParam(value = "lastname" defaultValue = "lname") String lastname
    

    【讨论】:

      猜你喜欢
      • 2017-12-26
      • 1970-01-01
      • 2018-07-21
      • 2011-08-31
      • 2020-12-14
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      相关资源
      最近更新 更多