代码之家  ›  专栏  ›  技术社区  ›  Oleksandr

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

  •  0
  • Oleksandr  · 技术社区  · 6 年前

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

    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 回复  |  直到 6 年前
        1
  •  2
  •   Ervin Szilagyi    6 年前

    我真的不确定是否可以用请求参数。相反,可以按以下方式将路径变量与正则表达式一起使用:

    @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
    { ... }
    

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

    example.com/test/some123data
    
        2
  •  0
  •   Max Farsikov    6 年前

    你可以尝试实现你自己的参数解析程序, here an example