Я пытаюсь привязать объект в контроллере Spring, чтобы он мог использоваться как @PathVariable
. Я хочу сделать это, так как есть некоторые @PathVariable
, которые я хочу передать. Я пробовал решение из переменных привязки пути к объекту пользовательской модели весной , а также Возможно ли связать переменную пути и запросить параметр в одном объекте? . Но оба не работают.
Я создал нечто подобное в моем контроллере.
@RestController
@RequestMapping("/buildings")
@RequiredArgsConstructor
public class BuildingController {
private final BuildingService buildingService;
@GetMapping("/{buildingId}/floors/{floorId}/rooms/{roomId}/sections")
public Flux<SectionDTO> getRoomSections(BuildingRequestBean request) {
return this.buildingService.getRoomSections(request);
}
}
и BuildingRequestBean.java
вот так
@Getter
@Setter
public class BuildingRequestBean {
private String buildingId;
private String floorId;
private String roomId;
}
Когда я проверяю BuildingRequestBean
, атрибуты равны нулю, когда я вызываю его с GET localhost:8080/buildings/a/floors/b/rooms/c/sections
. Тем не менее, он не будет нулевым, если я назову его @RequestParam
, что-то вроде этого GET localhost:8080/buildings/{buildingId}/floors/{floorId}/rooms/{roomId}/sections?buildingId=a&floorId=b&roomId=c
Как это исправить, чтобы он вел себя как @PathVariable
, а не как @RequestParam
?