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

时间:2015-09-28 13:21:53

标签: 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,
    @RequestParam(value = "id" ) int id

现在我想将lastname设为可选(从URL中删除),如下所示:

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

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

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

这就是我所拥有的:

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

我也试过

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

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

2 个答案:

答案 0 :(得分:0)

在Spring中,默认情况下,请求参数为required=true。您还应该指定其他请求参数所需的情况。

你应该确定,你是否部署了最新的war文件。此外,您需要在value参数之后输入错误,然后将其与comma分开。

答案 1 :(得分:0)

更新

事实证明,defaultValue的值/值必须是Param URL中的最后一个,如下所示。之后一切正常。如果lastname不存在,则URL有效。感谢。

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