/ / Der Controller erkennt die korrekte Handlermethode nicht - Feder, Feder-MVC

Das Steuergerät erkennt die richtige Handhabungsmethode nicht - Feder, Feder-MVC

Ich habe einen Controller mit den folgenden Methoden:

@Controller
@RequestMapping(value = "/employee/**")
public class EmployeeInfoController{

@RequestMapping(method = RequestMethod.GET)
public ModelAndView getEmployeeInfoCriteria(@ModelAttribute("employeeInfoParam") EmployeeInfoParam employeeInfoParam) {
.....
}

@RequestMapping(value = "/details/{empId}", method = RequestMethod.GET)
public ModelAndView getEmployeeDetailsById(@PathVariable String empId) {
......
}
}

Ich habe erwartet, wann immer ich /application/employee/würde es Suchseite zeigen und es tut. Die Seite mit den Mitarbeiterdetails wird jedoch nicht angezeigt, wenn ich eine Anfrage sende /application/emp/details/101, es geht Suchseite anstelle von Detailseite. Das Protokoll zeigt unten:

09:45:20,937 INFO  [STDOUT] DEBUG [RequestMappingHandlerMapping:229] - Looking up handler method for path /employee/details/400000000022161
09:45:20,938 INFO  [STDOUT] TRACE [RequestMappingHandlerMapping:267] - Found 2 matching mapping(s) for [/employee/details/400000000022161] : [{[/employee/**],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}, {[/employee/**/details/{empId}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}]
09:45:20,939 INFO  [STDOUT] DEBUG [RequestMappingHandlerMapping:234] - Returning handler method [public org.springframework.web.servlet.ModelAndView com.application.web.controller.EmployeeInfoController.getEmployeeInfoCriteria(com.application.web.form.EmployeeInfoParam)]

Mein Verständnis war, wenn ich keine Unter-URLs anstelle von ** (was in der Klassenebene liegt) erwähne, würde es dauern getEmployeeInfoCriteria d.h. /application/employee/. Wenn ich eine Sub-URL erwähne, wie /application/employee/details/1001würde es von gehandhabt werden getEmployeeDetailsById. Was fehlt mir hier?

Antworten:

2 für die Antwort № 1

Keine Notwendigkeit, ** in der Anforderungszuordnung auf Klassenebene zu verwenden, verwenden Sie einfach

@RequestMapping(value = "/employee/")


2 für die Antwort № 2

Der Platzhalter verhindert, dass die nächste URL aufgelöst wird. Werde es los.