春天,在请求参数中间分数(Spring, middle score in request param

2019-10-20 04:21发布

有没有一种方法来映射使用在簧请求中间分数的查询参数?

我没有问题,结合单措辞参数这样做:

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

Answer 1:

默认情况下,春季映射查询参数关键的Java变量的名称。 然而,它的语法不正确有一个变量名在Java中的连字符,这也解释了为什么你会发现它特别困难让Spring来设置参数的值给你。

可能工作的一个解决办法是只是有一个Map<String, String[]>参数来表示所有的参数。 那么Spring没有映射任何查询参数变量名,所以复姓可能会在地图中的所有参数的结束。 它可能不是一样舒适预裂参数对象,但它可能会复姓键。

另一种解决方案可能是配置WebDataBinder ,它控制如何从HTTP请求数据被映射到控制器的请求参数。 但是,这是蠕虫的整体能,特别是如果你刚开始使用Spring。 您可以在“数据绑定”阅读文档中更多地了解它。



Answer 2:

由于米沙说,它是语法不正确有一个变量名在Java连字符。 但春天是细跟的是,并允许您指定参数名称(要求)从变量名不同(在Java代码中)。 对于为例,当使用RequestMapping驱动控制器,一个可以写成:

@RequestMapping("/test")
public ModelAndView getProduct(
        @RequestParam("product-type") String productType) {
...
}

这样一来, getProduct将被称为像一个URL http://localhost/test?product-type=hotels和参数productType将获得价值hotels 。 而这一切还是纯声明。



文章来源: Spring, middle score in request parameter