spring,请求参数中得分
问题内容:
有没有一种方法可以在spring使用请求将查询参数映射为中分数?
我这样做绑定单字参数没有问题:
Uri示例: http://localhost:8080/test/?product=hotels
public class CitiesRequest{
private ProductType product;
public ProductType getProduct() {
return this.product;
}
public void setProduct(String product) {
this.product = product;
}
}
但我希望能够接收这样的参数:
http://localhost:8080/test/?product-type=hotels
问题答案:
默认情况下,Spring将查询参数键映射到Java变量的名称。但是,在Java中使用带连字符的变量名在语法上是不正确的,这解释了为什么您很难找到让Spring为您设置参数值的方法。
一个解决办法是 强权 的工作是只是有一个Map<String, String[]>
参数来表示 所有
的参数。然后,Spring不必将任何查询参数映射到变量名称,因此,带连字符的名称可能最终出现在所有参数的映射中。它可能不像预分割参数对象那样舒适,但它可能会得到带连字符的键。
另一个解决方案可能是配置WebDataBinder
,它控制如何将HTTP请求中的数据映射到控制器的请求参数上。但这是一堆蠕虫,特别是如果您刚从Spring开始的话。您可以在文档的“数据绑定”下阅读更多有关它的信息。