我们如何使用spring RedirectAttributes
添加具有相同名称和多个值的属性,例如,如果我有HTTP请求参数说place=london&place=paris
,并且我想重定向这些" place&# 34; redirectAttribute
中的参数。
redirectAttribute.addAttribute("place",places??)
我不想使用flash属性。
有可能吗?
答案 0 :(得分:1)
我真的很沮丧,似乎并不是一个更清洁的解决方案,但我遇到了同样的问题并最终做了:
((HashMap<String, Object>) redirectAttrs).putIfAbsent("place",
Arrays.asList("london", "paris"));
这是有效的,因为它绕过RedirectAttributes在添加时通常会将所有内容转换为String的方式,因为它们忘记覆盖putIfAbsent
方法......
它有效(暂时),但我当然不推荐它。
答案 1 :(得分:0)
您可以使用mergeAttributes方法:
String[] attrArray = {"london", "paris"};
Map<String, String[]> attrMap = new HashMap<>();
attrMap.put("place", attrArray);
redirectAttrs.mergeAttributes(attrMap);
这将创建一个包含请求参数的URL,如下所示:place=london%2Cparis
(其中%2C
是逗号的十六进制ASCII码键),相当于place=london&place=paris
。