Deshalb möchte ich maximal seitenwechselbar Größe Wert auf 10 (Beispielwert) begrenzen, und ich kann dies tun, wie folgt aus:Was passiert mit dem Standard-Argument-Resolver, wenn ein benutzerdefinierter Resolver für denselben Typ hinzugefügt wird?
@Configuration
public class MvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
super.addArgumentResolvers(argumentResolvers);
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setMaxPageSize(10);
argumentResolvers.add(resolver);
}
}
und delcare Controller-Methode wie diese
@RequestMapping(name = "list")
public String listUsers(@PageableDefault(size = 5, page = 0) Pageable pageable) {
der Tat wird diese Arbeit Ich kann die Seitengröße nicht auf> 10 einstellen, aber ich bin neugierig warum? Was passiert mit Spring erstellt PageableHandlerMethodArgumentResolver
? Warum wird diese Instanz berücksichtigt und nicht die Standardinstanz? Schließlich kann ich Resolver hier nicht ersetzen, sondern nur einen neuen hinzufügen.
Der 'HandlerMethodArgumentResolver', der '' true' auf 'supports (MethodParameter)' zurückgibt, wird verwendet, um den Methodenparameter aufzulösen. Wenn das, was Sie hinzugefügt haben, "true" zurückgibt, wird das verwendet, auch wenn der andere Resolver es unterstützt. Hier muss noch etwas anderes ablaufen, vom Benutzer hinzugefügte Resolver könnten priorisiert sein oder Spring fügt seine voreingestellten Resolver nicht mehr hinzu, wenn ein Resolver des gleichen Typs existiert, aber ich bin mir da nicht sicher. Nur ein Resolver funktioniert für jeden Methodenparameter. –