2017-05-13 32 views
0

I have seen dass ich Pfadvariablen in einer Anforderungsmapping-Annotation verwenden kann, die über der Klasse selbst definiert ist. Allerdings kann ich es nicht funktionieren lassen. Was fehlt mir hier?Wie wird die Pfadvariable in einer Federreglerklasse verwendet?

Meine Controller-Klasse:

@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()); 

} 
} 

Wenn ich versuche, die angegebene URL ich eine Fehlermeldung kommen zu sagen:

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 

Was bin ich hier?

+0

Code prüfen sehr genau ... Vergleichen sowohl die Namen ... (Oder um Ihnen einen näheren Hinweis zu geben 'conncetion_name'! =' connection_name'). –

+0

Thx m8, Sie haben offensichtlich Recht! – handris

Antwort

1

Requestmapping Anmerkung für Pfadvariablen: -

@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) { 
. 
. 
. 
} 

oder auch wie folgt verwendet werden: -

@RequestMapping(value = "/{id}", method = RequestMethod.GET) 
public List<City> find(@PathVariable("id") Long id) { 
. 
. 
. 
} 
Verwandte Themen