У меня есть командный объект:
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
, и считывающем настраиваемую аннотацию к целевому объекту