Могут ли строка и имя переменной отличаться в аннотации 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 - это разные вещи. Вы не можете просто использовать аннотации одного в другом.

Другие вопросы по тегам