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

将GET请求参数自动映射到POJO

周宏胜
2023-03-14
问题内容

我的REST控制器中有包含很多参数的方法。例如:

@RequestMapping(value = "/getItem", method = RequestMethod.GET)
public ServiceRequest<List<SomeModel>> getClaimStatuses(
        @RequestParam(value = "param1", required = true) List<String> param1,
        @RequestParam(value = "param2", required = false) String param2,
        @RequestParam(value = "param3", required = false) List<String> param3,
        @RequestParam(value = "param4", required = false) List<String> param4,
        @RequestParam(value = "param5", required = false) List<String> param5) {
    // ......
}

而且我想将所有GET请求参数映射到POJO对象,例如:

public class RequestParamsModel {

   public RequestParamsModel() {

   }

   public List<String> param1;
   public String param2;
   public List<String> param3;
   public String param4;
   public String param5;
}

我需要像我们可以在REST Controller中使用@RequestBody一样的方法。

在Spring 3.x中可以做吗?

谢谢!


问题答案:

可能且容易,请确保您的bean对这些字段具有正确的访问器。您可以为每个属性添加适当的验证,只需确保已安装适当的jar即可。就代码而言,它将类似于

import javax.validation.constraints.NotNull;

public class RequestParamsModel {

    public RequestParamsModel() {}

    private List<String> param1;
    private String param2;
    private List<String> param3;
    private String param4;
    private String param5;

    @NotNull
    public List<String> getParam1() {
        return param1;
    }
    //  ...
}

控制器方法为:

import javax.validation.Valid;

@RequestMapping(value = "/getItem", method = RequestMethod.GET)
public ServiceRequest<List<SomeModel>> getClaimStatuses(@Valid RequestParamsModel model) {
    // ...
}

和请求,例如:

/getItem?param1=list1,list2&param2=ok


 类似资料:
  • 在Jersey中有注释,我可以使用它将请求参数映射到bean属性。 在Spring中,我只能找到,它显然只适用于请求体,而不适用请求参数。 有没有办法使用Spring将请求参数映射到bean?

  • Web 容器需要本章描述的映射技术去映射客户端请求到 Servlet(该规范2.5以前的版本,使用这些映射技术是作为一个建议而不是要求,允许servlet 容器各有其不同的策略用于映射客户端请求到 servlet)。

  • 问题内容: 服务类具有一个接受多个参数的操作。这些参数作为查询参数传递给服务调用。 这些参数的列表正在增长,因此我想将它们放入包含所有这些参数的单个bean中。 你会怎么做?这有可能吗? 问题答案: 您可以使用。 在您的资源中,您只需要使用。 提供者将被自动调用。

  • 我创建了一个带有参数的API,如下所示: 我在body->表单数据中传递了。 然后我在《邮递员》上得到了这样一条消息: 有人知道为什么会有这个消息吗?我们如何在Rest API请求中传递一个映射作为参数?我们怎样才能通过邮递员传递地图?

  • 将JSON对象映射到类c#属性用例:我在Azure函数中创建API,并将参数ReservationDraftRequestDto传递到类,如下面的代码所示 [FunctionName("Function1")]公共静态异步任务运行([http trigger(authorization level。Function," get "," post ",Route = null)]Reservatio

  • 我知道Struts2使用拦截器自动映射请求参数到动作类字段。但如果我想将一个参数映射到一个具有不同名称的操作字段,该怎么办。我想我有 如果我想将此映射到下面的字段 我怎么做这个映射。我能用吗 如果是的话,我如何在action类中获取请求对象?此外,它是否可以在带有OGNL表达式或的JSP页面中工作?在struts2配置中有没有其他方法来做这种映射?

  • 本文向大家介绍SpringMvc自动装箱及GET请求参数原理解析,包括了SpringMvc自动装箱及GET请求参数原理解析的使用技巧和注意事项,需要的朋友参考一下 在我的概念里边,GET请求需要加上注解@RequestParam,然后它的参数类型只能是 基本数据类型 或者 基本数据类型的包装类,比如:@RequestParam String name(默认是必传的),也可以不加@RequestPa

  • 问题内容: 我有这段代码: 据我所知,它应该接受一个test.json?tipo = H请求并返回Variavel []的JSON表示,但是当我发出这样的请求时,我得到了: HTTP状态406- 类型状态报告 信息 description根据此请求标识的资源只能根据请求的“ accept”标头()生成特性不可接受的响应() 通过使用以下功能,我可以获得预期的json: 我做错了什么? 问题答案: