我尝试在Spring控制器中绑定一个对象,以便可以将其用作
我在我的控制器中创建了以下内容。
当我使用
如何修复它,使其表现得像
@PathVariable
。我之所以想这样做,是因为有一些@PathVariable
需要传递。我已经尝试了在Spring中绑定路径变量到自定义模型对象和是否可以将路径变量和请求参数绑定到单个对象中的解决方案。但两者都不起作用。我在我的控制器中创建了以下内容。
@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;
}
当我使用
GET localhost:8080/buildings/a/floors/b/rooms/c/sections
调用BuildingRequestBean
时,属性为null。然而,如果像这样使用@RequestParam
调用它,GET localhost:8080/buildings/{buildingId}/floors/{floorId}/rooms/{roomId}/sections?buildingId=a&floorId=b&roomId=c
,则不会为null。如何修复它,使其表现得像
@PathVariable
而不是像@RequestParam
?