不满意的ServletRequestParameterException spring控制器没有映射请求,错误400

car*_*Pat 2 java spring spring-mvc

我已经在我的Spring @controller中写了这个请求的映射,它接受请求和参数"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...
    }
Run Code Online (Sandbox Code Playgroud)

我打电话的时候 localhost:8084/context/admin/evento/approvatutti?tipoLista=valueOfParameter&numPagina=0

我收到错误代码400,请求错误.我已启用TRACE级别日志记录,但收到此消息:

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}
Run Code Online (Sandbox Code Playgroud)

Sot*_*lis 5

params属性@RequestMapping需要一个String[]

任何环境的格式相同:一系列"myParam = myValue"样式表达式

所以String数组中的每一个都是格式

paramName=paramValue
Run Code Online (Sandbox Code Playgroud)

但你可以省略=paramValue.但是你提供的单一String价值就像

{tipoLista,numPagina}
Run Code Online (Sandbox Code Playgroud)

这意味着请求查询字符串必须看起来像

?{tipoLista,numPagina}=someValue
Run Code Online (Sandbox Code Playgroud)

这显然没有任何意义,春天抱怨

Resolving exception from handler [null]: org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "{tipoLista,numPagina}" not met for actual request parameters: tipoLista={approvabili}, numPagina={0}
Run Code Online (Sandbox Code Playgroud)

相反,您可以将其更改为

params = {"tipoLista","numPagina"}
Run Code Online (Sandbox Code Playgroud)

但这不是必要的.params一起摆脱属性.您已经@RequestParam在方法中拥有所需的参数.