微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何访问同一类Java中另一个函数内的列表

如何解决如何访问同一类Java中另一个函数内的列表

我发了一个帖子并在我的 java 控制器层中获取映射。帖子映射从前端收集开始日期、结束日期和访客数量等数据。

在服务层内,第一个函数过滤可用的公寓。但是,我想制作一个可以访问可用公寓列表的 get 映射,以便可以在前端显示。我在服务层用第二个函数尝试了这个。不幸的是,此功能显示整个公寓列表。有谁知道我如何获得一个可以从第一个函数访问列表的函数,以便我可以显示过滤后的可用公寓?

公寓控制器层

 @PostMapping(value = "api/availableapartments")
    public List<Apartment> getAvailableApartments(@RequestBody String request)throws JSONException,ParseException {
        JSONObject jsonObject = new JSONObject(request);
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date startDate = format.parse(String.valueOf(jsonObject.getString("startDate")));
        Date endDate = format.parse(String.valueOf(jsonObject.getString("endDate")));
        Integer numberOfbeds =  Integer.parseInt(String.valueOf(jsonObject.getString("numberOfbeds")));
        return apartmentService.getAvailableApartments(numberOfbeds,startDate,endDate);
    }

    @GetMapping(value = "api/availableapartments")
    public List<Apartment> getAvailableApartments(){
        return apartmentService.getAllAvailableApartments();
    }


公寓服务层

public class ApartmentService  {

 public List<Apartment> getAvailableApartments(Integer requestedbeds,Date startDate,Date endDate){

        List<Apartment> allApartments = apartmentRepository.findAll();

        List<Apartment> availableApartments = new ArrayList<>();
            //going through all apartments
            for(Apartment apartment : allApartments){


                if(apartment.getAvailablebeds() >= requestedbeds){
                    if(reservationService.checkAvailability(apartment,endDate)){
                        availableApartments.add(apartment);
                    }

                }

            }
            return availableApartments;
    }

    public List<Apartment> getAllAvailableApartments(){
        List<Apartment> allApartments = apartmentRepository.findAll();


        List<Apartment> allAvailableApartments = new ArrayList<>();

        for(Apartment apartments : allApartments){
            System.out.println(apartments.getApartmentId());
            allAvailableApartments.add(apartments);


        }

        return allAvailableApartments;

    }
}

```

解决方法

不确定我是否完全理解这个问题,但在这种情况下,最好不要仅使用 POST 请求来 POST 包含一些搜索参数的对象。

您应该使用带有参数的 GET 来代替 POST 进行过滤。这样您就可以在 GET 请求中进行过滤,而无需“访问 POST”请求。

Have a look here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。