In meinem Controller habe ich String-Parameter, der eine ID enthält, die nicht leere Zeichenfolge sein sollte. Ich frage mich, gibt es eine Möglichkeit zu überprüfen, es ist nicht leer String in @RequestMapping params? Ich habe versucht, es in gewisser Weise ohne ErfolgSo überprüfen Sie den Anfrageparameter ist nicht leer String in @RequestMapping params?
@RequestMapping(value = someURL, params = {"id"})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id="})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id=\"\""})
public SomeResponse doSomething(@RequestParam(required = true) String id)
zu lösen. Wie ich verstanden habe, können sowohl params = {"id"}
als auch @RequestParam(required = true)
nur prüfen, ob der Parameter id
in der Anforderung (! = Null) angezeigt wird.
Es ist sehr wahrscheinlich, dass ich, dass in der Steuerung boby mit Code zu überprüfen, wie
if (id == null || id.isEmpty()) {
return someErrorResponse;
}
aber bitte korrigieren Sie mich, wenn ich falsch. Vielen Dank im Voraus.
P.S. Meine App läuft auf Java 1.7 SE in Apache Tomcat 7.0.62 Container
Mir ist aufgefallen, dass 'required = true' nicht einmal notwendig ist, da ich einen Status 400 bekommen habe, als ich ein Headerfeld weggelassen habe: '{" status ": 400," error ":" Bad Request "," exception ":" org.springframework.web.bind.ServletRequestBindingException "," message ":" Fehlender Anfrage-Header 'X-Custom-Header' für Methodenparameter vom Typ String "," path ":"/api/"}' – user3105453
Danke, denke ich Das ist das, was ich benötige. Wenn ich die Annotation so definierte, wie Sie es vorgeschlagen hatten, den Breakpoint zu Beginn der Controller-Methode setzen und den Test ausführen, kam ich a) nicht in die Controller-Methode; b) habe selbst erklärte Ausnahme org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter Bedingungen "ID! =" für tatsächliche Anfrage Parameter nicht erfüllt: id = {}. – WeGa