【问题标题】:Receive multiple values in query parameter in spring boot在spring boot中的查询参数中接收多个值
【发布时间】:2022-01-14 22:45:49
【问题描述】:

我想在 Spring Boot 的查询参数中接收多个值,但是在传递参数时出现 404 错误。有人请帮帮我吗?

@RequestMapping(method = RequestMethod.GET, value = "/getreport")
    public ResponseEntity<?> parameterValidation(@RequestParam Map<String, String> requestParam) {
        
        int siteId = Integer.parseInt(requestParam.get("siteId"));
        String pageGroup = requestParam.get("pagegroup");
        String deviceType = requestParam.get("devicetype");
        int mode = Integer.parseInt(requestParam.get("mode"));
        String errorCode = requestParam.get("errorcode");
        Long topUrlCount = Long.parseLong(requestParam.get("topurlcount"));
        String orderBy = requestParam.get("orderby");
        String startDate = requestParam.get("startdate");
        String endDate = requestParam.get("enddate");

        if (validation.isSiteIdValid(siteId) && validation.isDeviceValid(deviceType) && validation.isModeValid(mode)
                && validation.isTopUrlCountValid(topUrlCount) && validation.isOrderByValid(orderBy)
                && validation.isStartDateValid(startDate) && validation.isEndDateValid(endDate)) {
            return new ResponseEntity<>("VAlIDATION SUCCESS !", HttpStatus.OK);
        } else {
            return new ResponseEntity<>("OOPS SOMETHING WENT WRONG !, PLEASE CHECK QUERY PARAMETER !", HttpStatus.BAD_REQUEST);
        }
    }

【问题讨论】:

  • 404 表示您发送的请求无法映射到控制器方法上。

标签: java spring-boot postman


【解决方案1】:

首先:404 是你的控制器没有请求 url 映射。
第二:您可以使用类来接收多个值。
    public class Param{
      private Integer siteId;
      private String pagegroup;
      private String devicetype;
      private Integer mode;
      private String errorcode;
      private Long topurlcount;
      private String orderby;
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime startdate;
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private String enddate;
    
    }
    
    
    @RequestMapping(method = RequestMethod.GET, value = "/getreport")
    public ResponseEntity<?> parameterValidation(Param requestParam) {

        if (validation.isSiteIdValid(requestParam.getSiteId()) && validation.isDeviceValid(requestParam.getDeviceType()) && validation.isModeValid(requestParam.getMode())
                && validation.isTopUrlCountValid(requestParam.getTopUrlCount()) && validation.isOrderByValid(requestParam.getOrderBy())
                && validation.isStartDateValid(requestParam.getStartDate()) && validation.isEndDateValid(requestParam.getEndDate())) {
            return new ResponseEntity<>("VAlIDATION SUCCESS !", HttpStatus.OK);
        } else {
            return new ResponseEntity<>("OOPS SOMETHING WENT WRONG !, PLEASE CHECK QUERY PARAMETER !", HttpStatus.BAD_REQUEST);
        }
    }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 2020-02-27
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多