gpt4 book ai didi

java - URL中的编码逗号在Spring中被读取为List

转载 作者:行者123 更新时间:2023-12-02 08:45:04 29 4
gpt4 key购买 nike

我在 Spring 中有一个 REST 组件。简化后,它看起来像这样:

@RequestMapping(value = "/route", method = RequestMethod.GET)
public Object thisIsTheMethod(@RequestParam(value = "value", required = false) List<String> values) {
return OtherClass.doTheThing(values);
}

这用于使用任意长度的字符串列表。您可以通过多种方式做到这一点:

localhost:8080/route?value=this&value=that

或者

localhost:8080/route?value=this,that

现在假设我想传入一个包含逗号的字符串:value,1。我该怎么做呢?将逗号替换为 %2C 会生成 2 个值的列表(“value”、“1”)。将任何内容放在引号中或转义引号中都有类似的问题。当我有多个参数并使用多值模式时,它看起来好像有效,但当我使用逗号分隔模式时则不起作用。

最佳答案

您可以设置分隔符。当未设置时,逗号只是 org.springframework.boot.convert.DelimitedStringToCollectionConverter 中使用的默认逗号。如果您愿意,您可以完全禁用Delimiter。对于您的代码,它看起来像这样:

import org.springframework.boot.convert.Delimiter;

@RequestMapping(value = "/route", method = RequestMethod.GET)
public Object thisIsTheMethod(@Delimiter(Delimiter.None) @RequestParam(value = "value", required = false) List<String> values) {
return OtherClass.doTheThing(values);
}

关于java - URL中的编码逗号在Spring中被读取为List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37058691/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com