有没有一种方法来映射使用在簧请求中间分数的查询参数?
我没有问题,结合单措辞参数这样做:
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
默认情况下,春季映射查询参数关键的Java变量的名称。 然而,它的语法不正确有一个变量名在Java中的连字符,这也解释了为什么你会发现它特别困难让Spring来设置参数的值给你。
可能工作的一个解决办法是只是有一个Map<String, String[]>
参数来表示所有的参数。 那么Spring没有映射任何查询参数变量名,所以复姓可能会在地图中的所有参数的结束。 它可能不是一样舒适预裂参数对象,但它可能会复姓键。
另一种解决方案可能是配置WebDataBinder
,它控制如何从HTTP请求数据被映射到控制器的请求参数。 但是,这是蠕虫的整体能,特别是如果你刚开始使用Spring。 您可以在“数据绑定”阅读文档中更多地了解它。
由于米沙说,它是语法不正确有一个变量名在Java连字符。 但春天是细跟的是,并允许您指定参数名称(要求)从变量名不同(在Java代码中)。 对于为例,当使用RequestMapping
驱动控制器,一个可以写成:
@RequestMapping("/test")
public ModelAndView getProduct(
@RequestParam("product-type") String productType) {
...
}
这样一来, getProduct
将被称为像一个URL http://localhost/test?product-type=hotels
和参数productType
将获得价值hotels
。 而这一切还是纯声明。