如何在spring控制器类中使用路径变量?

时间:2017-05-13 15:55:07

标签: java spring spring-mvc spring-boot

I have seen我可以在类本身上方定义的Requestmapping注释中使用路径变量。 但是,我无法使其发挥作用。我在这里缺少什么?

我的控制器类:

@Slf4j
@RestController
@RequestMapping(value = "{conncetion_name}/widget")
public class WidgetController {

private PortsRepository portsRepository;
private PortsService portsService;

@Autowired
public WidgetController(PortsRepository portsRepository, PortsService portsService) {
    this.portsRepository = portsRepository;
    this.portsService = portsService;
}

@RequestMapping(value = "/getBulkdata")
public List<TransferObject> getBulkData(@PathVariable(value="connection_name") String connectionName){

    return portsService.convertPortsToTransferObject(portsRepository.findByroomTypeIsNotNull());

}
}

当我尝试访问给定的网址时,我收到一条错误消息:

Sat May 13 17:47:05 CEST 2017
There was an unexpected error (type=Internal Server Error, status=500).
Missing URI template variable 'connection_name' for method parameter of type String

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

请求映射路径变量的注释: -

public void animation()
    {

        for(int i=0; i<20; i++)
        {
            try{
                Thread.sleep(100);
            }
            catch( InterruptedException e){}

                wolf.move();
                repaint();

            for(Hare i: hares){
                try{
                    Thread.sleep(100);
                }
                catch( InterruptedException e){}

                i.move();
                repaint();

            }
        }
    }

或者您也可以这样使用: -

@RestController
@RequestMapping("/cities")
public class CityController {

private static final Logger logger = LoggerFactory.getLogger(CityController.class);

@Autowired
private CityService cityService;

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public RestResponse find(@PathVariable("id") Long id) {
.
.
.   
}