在调用控制器之前,如何在Spring中将一个请求参数转换为几个请求参数?

时间:2018-08-12 11:33:21

标签: java spring spring-mvc spring-restcontroller

客户端在一个请求参数中发送一些数据,例如:

example.com/test?myparam=some123data

我想将myparam转换为其他几个参数,并使用此类参数调用必要的控制器。像这样一个:

@RequestMapping(value = "/test")
public @ResponseBody MyObject test(
    @RequestParam(value = "prefix") String prefix, // some
    @RequestParam(value = "number") int number, // 123
    @RequestParam(value = "suffix") String suffix)  //data
{ ... }

可以为这种情况放置一些自定义转换器吗?

2 个答案:

答案 0 :(得分:2)

我不确定是否可以将其设置为请求参数。相反,您可以通过以下方式将路径变量与正则表达式结合使用:

@RequestMapping(value = "/test/{prefix:[a-z]+}{number:[0-9]+}{suffix:[a-z]+}")
public @ResponseBody MyObject test(
    @PathVariable(value = "prefix") String prefix, // some
    @PathVariable(value = "number") int number, // 123
    @PathVariable(value = "suffix") String suffix)  //data
{ ... }

在这种情况下,您的请求网址将如下所示:

example.com/test/some123data

答案 1 :(得分:0)

您可以尝试实现自己的参数解析器here an example