Java 如何为URL设置RequestMapping默认值/必需值?

Java 如何为URL设置RequestMapping默认值/必需值?,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,以下URL查询数据库并使用requestParam正确返回所有值,如下所示: http://localhost:8080/app/locateUser/search?firstname=John&lastname=Clay&id=2 @RequestParam(value = "firstname") String firstname, @RequestParam(value = "lastname") String lastname, @Req

以下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
现在,我想将lastname设置为可选(从URL中删除),如下所示:

如何使url成为可选的?我希望能够在URL字符串中查询没有lastname的DB

这就是我所拥有的:

    @RequestParam(value = "firstname") String firstname,
    @RequestParam(value = "lastname" defaultValue = "lname") String lastname,
    @RequestParam(value = "id" ) int id
我也试过了

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

两者似乎都不起作用。我缺少什么?

在spring请求中,默认情况下参数是
required=true
。此外,您还应该提供其他需要指定的请求参数


你应该确定你是否部署了最新的war文件。而且,您似乎在
参数后有一个输入错误,您需要用
逗号
更新

结果表明,具有defaultValue的值必须是Param URL中的最后一个值,如下所示。从那以后一切都很好。如果lastname不存在,则URL有效。谢谢

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

它应该与
required=false
一起工作,向我们显示您完整的方法签名和错误,这可能有助于理解您的问题什么不起作用。。。当
required=false
时,您会得到一个不为null的空字符串,您当然需要做一些进一步的工作来忽略查询中的空参数……这可能会有帮助,我认为这个问题已经由