Могут ли строка и имя переменной отличаться в аннотации queryparam в java?
Вот сценарий.
Case1: (@QueryParam ("username") String username) URL: пример? Username = yourname
Case2: (@QueryParam ("username") String name) URL: пример? Username = yourname
В этих 2 случаях это правильный способ использования QueryParam.
Когда я использую Case1, он работает, ваше имя печатается. Но когда я использую Case2, ноль печатается.
Я хочу реализовать Случай 2 из-за следования некоторым стандартам кодирования. Означает, что я не хочу менять имя переменной (то есть "имя строки"). Но в URL я должен использовать "имя пользователя".
Есть ли способ использовать сценарий Case2 для QueryParam.
Добавление кода (1-е редактирование) Вот код, с которым я столкнулся с проблемой, с которой я столкнулся
@RequestMapping (value = "/username1", method = RequestMethod.GET)
@ResponseBody
public Response username1(@QueryParam("username") String username) {
System.out.println("Username1 is ==> " + username);
return Response.ok(username).build();
}
@RequestMapping (value = "/username2", method = RequestMethod.GET)
@ResponseBody
public Response username2(@QueryParam("username") String name) {
System.out.println("Username2 is ==> " + name);
return Response.ok(name).build();
}
/username1?username=yourname Вывод: Username1 is ==> yourname
/ username2? username = yourname Вывод: Username2 is ==> null
Спасибо
1 ответ
Да, вы делаете что-то не так: вы используете QueryParam
, которая является аннотацией JAX-RS, в приложении Spring-MVC.
Эквивалентная аннотация Spring RequestParam
, JAX-RS и Spring MVC - это разные вещи. Вы не можете просто использовать аннотации одного в другом.