Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
Java Spring MVC抽象控制器路径变量_Java_Spring_Rest_Spring Mvc_Abstract Class - Fatal编程技术网

Java Spring MVC抽象控制器路径变量

Java Spring MVC抽象控制器路径变量,java,spring,rest,spring-mvc,abstract-class,Java,Spring,Rest,Spring Mvc,Abstract Class,我有一个抽象控制器,在它的一些操作中有路径变量: @Controller @RequestMapping("/generic-status/v1") public abstract class GenericStatusController{ @RequestMapping(value = "/connection/availability/{connectionName}", method = { RequestMethod.GET }) @ResponseStatus(Ht

我有一个抽象控制器,在它的一些操作中有路径变量:

@Controller
@RequestMapping("/generic-status/v1")
public abstract class GenericStatusController{

    @RequestMapping(value = "/connection/availability/{connectionName}", method = { RequestMethod.GET })
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    public abstract ConnectionResult checkConnection( @PathVariable("connectionName") String connectionName ) throws ConnectionException, ParameterInvalidException, StatusApiException;
当我扩展并使用它时,所有的请求映射都正常工作。但不幸的是路径变量总是为null

你能帮我一下吗

提前感谢

正如戴纳姆先生指出的那样: 在扩展这个抽象控制器之后,我从中得出如下结论:

@Override
ConnectionResult checkConnection(String connectionName) throws ConnectionException, ParameterInvalidException, StatusApiException; {
     // logic
}
这意味着您将要使用的控制器实例实际上没有@PathVariable映射来描述并告诉Spring它应该将其作为方法的参数提供。 解决方案:在扩展控制器中添加@PathVariable:

@Override
ConnectionResult checkConnection(@PathVariable("connectionName") String connectionName) throws ConnectionException, ParameterInvalidException, StatusApiException; {
     // logic
}

您仍然需要在重写的方法中使用
@PathVariable
。谢谢,但我不希望重写的方法指定此路径变量:S有其他方法吗?您有一个抽象方法,方法参数上的注释不会继承,因此没有其他方法,除非您在抽象方法中实现此方法并从中切换到其他方法,但这并不会使事情变得更漂亮。谢谢您,但我不希望重写的方法指定此路径变量:S是否有其他方法?编辑。在不使用@PathVariable的情况下重写此方法时,您说过要更改它的正常行为。要保留它,必须再次使用注释。这似乎很正常。