Reputation: 159
I have write in my Spring @controller this mapping of request, it accepts request and parameter "tipoLista,numPagina"
@RequestMapping(value = "/admin/evento/approvatutti", params = "{tipoLista,numPagina}", method = RequestMethod.GET)
public ModelAndView approvaTuttiGliEventi(@RequestParam("tipoLista") String tipoLista, @RequestParam("numPagina") String numPagina, ModelAndView model) {
....bla bla ...bla...
}
When i call localhost:8084/context/admin/evento/approvatutti?tipoLista=valueOfParameter&numPagina=0
I received error code 400, bad request. I have enabled TRACE level logging and I receive this message:
Resolving exception from handler [null]: org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "{tipoLista,numPagina}" not met for actual request parameters: tipoLista={approvabili}, numPagina={0}
DEBUG - nseStatusExceptionResolver - Resolving exception from handler [null]: org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "{tipoLista,numPagina}" not met for actual request parameters: tipoLista={approvabili}, numPagina={0}
DEBUG - ltHandlerExceptionResolver - Resolving exception from handler [null]: org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "{tipoLista,numPagina}" not met for actual request parameters: tipoLista={approvabili}, numPagina={0}
Upvotes: 2
Views: 16612
Reputation: 279990
The params
attribute of @RequestMapping
expects a String[]
with
Same format for any environment: a sequence of "myParam=myValue" style expressions
So each String
in the array is of the format
paramName=paramValue
but you can omit the =paramValue
. But you are providing a single String
value like
{tipoLista,numPagina}
this would mean the request query string would have to look like
?{tipoLista,numPagina}=someValue
which obviously makes no sense and Spring complains
Resolving exception from handler [null]: org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "{tipoLista,numPagina}" not met for actual request parameters: tipoLista={approvabili}, numPagina={0}
Instead, you can change it to
params = {"tipoLista","numPagina"}
but this is not necessary. Get rid of the params
attribute all together. You already have @RequestParam
parameters in your method which are required.
Upvotes: 5