Spring 控制器参数出现奇怪错误
我已经用SpringBoot写了一个项目,在添加之前,我的控制器工作得很好 “params”到getmapping注释 我的PlaneTypeVersionDapi界面位于下方Spring 控制器参数出现奇怪错误,spring,spring-boot,rest,spring-mvc,spring-restcontroller,Spring,Spring Boot,Rest,Spring Mvc,Spring Restcontroller,我已经用SpringBoot写了一个项目,在添加之前,我的控制器工作得很好 “params”到getmapping注释 我的PlaneTypeVersionDapi界面位于下方 @Validated @RequestMapping("/version") public interface PlaneTypeVersionedApi { @GetMapping(value = "/plane", params = "v1")
@Validated
@RequestMapping("/version")
public interface PlaneTypeVersionedApi {
@GetMapping(value = "/plane", params = "v1")
ResponseEntity<String> getOnePlaneByProduce1(@RequestParam("plane-type")String planeType);
}
@RestController
public class PlaneTypeVersionedApiImpl implements PlaneTypeVersionedApi {
private final PlaneCallerService planeCallerService;
public PlaneTypeVersionedApiImpl (PlaneCallerService planeCallerService) {
this.planeCallerService = planeCallerService;
}
@Override
public ResponseEntity<String> getOnePlaneByProduce1(String planeType) {
return ResponseEntity.ok(planeCallerService.getPlaneType(planeType));
}
}
@已验证
@请求映射(“/version”)
公共接口PlaneTypeVersionedApi{
@GetMapping(value=“/plane”,params=“v1”)
ResponseEntity getOnePlaneByProduce1(@RequestParam(“平面类型”)字符串planeType);
}
我的PlanetypersionedapiImpl类如下所示
@Validated
@RequestMapping("/version")
public interface PlaneTypeVersionedApi {
@GetMapping(value = "/plane", params = "v1")
ResponseEntity<String> getOnePlaneByProduce1(@RequestParam("plane-type")String planeType);
}
@RestController
public class PlaneTypeVersionedApiImpl implements PlaneTypeVersionedApi {
private final PlaneCallerService planeCallerService;
public PlaneTypeVersionedApiImpl (PlaneCallerService planeCallerService) {
this.planeCallerService = planeCallerService;
}
@Override
public ResponseEntity<String> getOnePlaneByProduce1(String planeType) {
return ResponseEntity.ok(planeCallerService.getPlaneType(planeType));
}
}
@RestController
公共类PlaneTypeVersionDapi实现PlaneTypeVersionDapi{
专用最终平面调用服务平面调用服务;
公共平面类型版本DAPIIMPL(平面调用服务平面调用服务){
this.planeCallerService=planeCallerService;
}
@凌驾
公共响应属性getOnePlaneByProduce1(字符串planeType){
返回ResponseEntity.ok(planeCallerService.getPlaneType(planeType));
}
}
当我试着用邮递员做控制器时
localhost:9080/版本/平面?平面类型=轻型?v1
我有400个不好的要求
已解决[org.springframework.web.bind.unsatifiedServletRequestParameterException:实际请求参数不满足参数条件“v1”:平面类型={light-weight?v1}]url上的查询参数语法无效 以下是正确的语法:localhost:9080/version/plane?plane type=light-weight&v1
您的url不正确,不确定您的参数的使用意图 示例1有效url=localhost:9080/version/plane?plane type=light-weight&v1= 使用@RequestParam(“平面类型”)字符串平面类型 @RequestParam(“v1”)字符串v1足以获取值,无需使用属性params 示例2如果要使用参数 @GetMapping(value=“/plane”,params={“v1”})这意味着您需要v1值
ResponseEntity<String> getOnePlaneByProduce1(@RequestParam("v1")String v1);
ResponseEntity getOnePlaneByProduce1(@RequestParam(“v1”)字符串v1);
例3两者都要吗
@GetMapping(value=“/plane”,params={“v1”,“plane type”})这意味着您需要v1值和平面类型
ResponseEntity<String> getOnePlaneByProduce1(@RequestParam("v1")String v1, @RequestParam("plane-type") String plane-type);
ResponseEntity getOnePlaneByProduce1(@RequestParam(“v1”)字符串v1,@RequestParam(“平面类型”)字符串平面类型);
参数选项只意味着端点需要这些参数,如果您指定的参数不存在,它会抱怨非常感谢您的回答,这正是ı需要的