当前位置: 首页 > 面试题库 >

spring,请求参数中得分

公冶威
2023-03-14
问题内容

有没有一种方法可以在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开始的话。您可以在文档的“数据绑定”下阅读更多有关它的信息。



 类似资料:
  • 主要内容:通过 HttpServletRequest 获取请求参数,通过形参获取请求参数,使用 @RequestParam 注解获取,通过实体类对象获取(推荐),解决获取请求参数的乱码问题Spring MVC 提供了多种获取请求参数的方式: 通过 HttpServletRequest 获取请求参数 通过控制器方法的形参获取请求参数 使用 @RequestParam 注解获取请求参数 通过实体类对象获取请求参数(推荐) 下面我们就对这些获取请求参数的方式一一进行介绍。 通过 HttpServlet

  • 可以在模板中直接使用$Request对象,直接输入它的属性或调用它的大部分方法,但只支持方法的第一个参数; // 调用Request对象的get方法 传入参数为id {$Request.get.id} // 调用Request对象的param方法 传入参数为name {$Request.param.name} // 调用Request对象的param方法 传入参数为post.post_title

  • 可以在模板中直接使用$Request对象,直接输入它的属性或调用它的大部分方法,但只支持方法的第一个参数; // 调用Request对象的get方法 传入参数为id {$Request.get.id} // 调用Request对象的param方法 传入参数为name {$Request.param.name} // 调用Request对象的param方法 传入参数为post.post_title

  • 我试图写一个Spring MVC GET控制器,它需要Java8即时作为请求参数: 与: 我正在从一些React/Javascript代码触发一个GET请求,如下所示: Spring似乎不喜欢它,并抛出一个错误。以下是错误消息: 知道我为什么会收到这个吗? 谢谢你

  • 我想验证我的控制器中的一个请求参数。请求参数应该来自给定值列表中的一个,如果不是,则应该抛出错误。在下面的代码中,我希望请求参数orderBy来自@Values准许中存在的值列表。 我已经编写了一个自定义bean验证器,但不知何故,它不起作用。即使我为查询参数传递任何随机值,也不会验证并引发错误。

  • 我是Spring启动的新手,并试图使用枚举作为Rest请求的参数。 这是我的枚举类: 在我的控制器类中,我使用了以下方法: 这是我的JSON: 但它不起作用。。我收到以下错误:

  • 我是Spring MVC的新手,我正在尝试将javascript中的日期作为请求参数传递 我的控制器看起来像- 我的问题是如何从javascript调用-如URL应该是什么样子 我需要一种方法来解析日期,以便Spring可以识别它吗?