Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 控制器参数出现奇怪错误_Spring_Spring Boot_Rest_Spring Mvc_Spring Restcontroller - Fatal编程技术网

Spring 控制器参数出现奇怪错误

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")

我已经用SpringBoot写了一个项目,在添加之前,我的控制器工作得很好 “params”到getmapping注释

我的PlaneTypeVersionDapi界面位于下方

@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(“平面类型”)字符串平面类型);

参数选项只意味着端点需要这些参数,如果您指定的参数不存在,它会抱怨

非常感谢您的回答,这正是ı需要的