carminePat
carminePat

Reputation: 159

UnsatisfiedServletRequestParameterException spring controller don't mapping request, error 400

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

Answers (1)

Sotirios Delimanolis
Sotirios Delimanolis

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

Related Questions