Как настроить имена параметров при привязке объектов команд Spring MVC?

У меня есть командный объект:

public class Job {
    private String jobType;
    private String location;
}

Который связан с spring -mvc:

@RequestMapping("/foo")
public Strnig doSomethingWithJob(Job job) {
   ...
}

Что отлично работает для http://example.com/foo? jobType = постоянный & location = Стокгольм . Но теперь мне нужно заставить его работать для следующего URL:

http://example.com/foo?jt=permanent&loc=Stockholm

Очевидно, я не хочу изменять свой командный объект, потому что имена полей должны оставаться длинными (поскольку они используются в коде). Как я могу это настроить? Есть ли возможность сделать что-то вроде этого:

public class Job {
    @RequestParam("jt")
    private String jobType;
    @RequestParam("loc")
    private String location;
}

Это не работает ( @RequestParam не может применяться к полям).

Я думаю о настраиваемом конвертере сообщений, подобном FormHttpMessageConverter , и считывающем настраиваемую аннотацию к целевому объекту

63
задан Lambda 11 September 2019 в 08:32
поделиться