2015-09-28 8 views
0

Следующий URL запрашивает БД и возвращает все значения, правильно используя requestParam, как показано ниже:Как установить RequestMapping значение по умолчанию/требуемое значение для URL?

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 необязательный? Я хочу иметь возможность запрашивать БД без последнего имени в строке 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, 

Ни кажется, работает. Что мне не хватает?

+0

Он должен работать с 'требуется = false', показать нам свою полную сигнатуру методы и ошибку вы имеете, это может помочь понять вашу проблему –

+0

Что не работает ... Когда' требуется = ложь 'тогда вы получите пустую строку не null, вам, конечно, придется что-то делать дальше по строке, чтобы игнорировать пустые параметры в запросе ... –

+0

Это может помочь http://stackoverflow.com/questions/17647214/form- value-to-be-null-вместо-in-spring –

ответ

0

Весной Параметры запроса: required=true по умолчанию. Также вы должны указать другие параметры запроса, необходимые для указания.

Вы должны убедиться, что вы развернули свой последний военный файл. И также кажется, что у вас есть опечатка после параметра value, который вам нужно разделить с помощью comma.

0

Update

Оказывается, что значение/значения с DefaultValue должен быть последним в URL Param, как это. После этого все отлично работает. URL работает, если lastname отсутствует. Благодарю.

@RequestParam(value = "firstname") String firstname, 
@RequestParam(value = "id") int id, 
@RequestParam(value = "lastname" defaultValue = "lname") String lastname 
Смежные вопросы