Spring MVC 抽象控制器 PathVariable
Spring MVC Abstract Controller PathVariable
我有一个抽象控制器并且在它的一些操作中有路径变量:
@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;
当我扩展和使用它时,所有请求映射都正常工作。但不幸的是,路径变量总是为空。
你能帮我解决这个问题吗?
提前致谢
正如 M.Deinum 指出的那样:
从我扩展这个抽象控制器后扣除的内容中,你有这样的东西:
@Override
ConnectionResult checkConnection(String connectionName) throws ConnectionException, ParameterInvalidException, StatusApiException; {
// logic
}
这意味着您将使用的控制器实例实际上没有描述和告诉 Spring 它应该将其作为参数提供给该方法的 @PathVariable 映射。
解决方案:在扩展控制器中也添加@PathVariable:
@Override
ConnectionResult checkConnection(@PathVariable("connectionName") String connectionName) throws ConnectionException, ParameterInvalidException, StatusApiException; {
// logic
}
我有一个抽象控制器并且在它的一些操作中有路径变量:
@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;
当我扩展和使用它时,所有请求映射都正常工作。但不幸的是,路径变量总是为空。
你能帮我解决这个问题吗?
提前致谢
正如 M.Deinum 指出的那样: 从我扩展这个抽象控制器后扣除的内容中,你有这样的东西:
@Override
ConnectionResult checkConnection(String connectionName) throws ConnectionException, ParameterInvalidException, StatusApiException; {
// logic
}
这意味着您将使用的控制器实例实际上没有描述和告诉 Spring 它应该将其作为参数提供给该方法的 @PathVariable 映射。 解决方案:在扩展控制器中也添加@PathVariable:
@Override
ConnectionResult checkConnection(@PathVariable("connectionName") String connectionName) throws ConnectionException, ParameterInvalidException, StatusApiException; {
// logic
}