Konverter von @PathVariable DomainObject zu String? (mit ControllerLinkBuilder.methodOn)
Ich versuche Spring's anzurufenControllerLinkBuilder.methodOn()
mit einem Nicht-String-Typ, der immer fehlschlägt. Und ich weiß nicht welcheConverter
zu verwenden und wo man es registriert.
Hier ist mein Controller:
@RestController
@RequestMapping("/companies")
class CompanyController {
@RequestMapping(value="/{c}", method=RequestMethod.GET)
void getIt(@PathVariable Company c) {
System.out.println(c);
Link link = linkTo(methodOn(getClass()).getIt(c));
}
}
DasSystem.out.println(c)
funktioniert gut. MeineCompany
Domain Objekt wird aus der DB geholt. (Ich benutzeDomainClassConverter
)
Aber der andere Weg funktioniert nicht:ConverterNotFoundException: No converter found capable of converting from type @PathVariable Company to type String
Brauche ich nur einenConverter<Company, String>
? Und wo soll ich es registrieren? Ich habe etwas innerhalb der versuchtaddFormatters(FormatterRegistry registry)
Methode vonWebMvcConfigurationSupport
, aber es zeigte nur den gleichen Fehler. Aber immerhin bin ich mir nicht sicher, was genau ich versucht habe ...