Không set được giá trị cho tham số trên URL

Xin chào mọi người, em đang làm về phần phân trang thì bị lỗi, trang đầu tiên nó vẫn nhận tham số page với limit, nhưng khi mà chuyển sang trang mới thì bị lỗi như này

Đây là cái controller phân trang (thật ra là nó tìm kiếm xong rồi phân trang luôn á)

 @RequestMapping(value = "/trang-chu/timkiem", method = RequestMethod.GET)
     public ModelAndView searchNews(@RequestParam(value = "keyword") String keyword,
                                    @RequestParam(value = "page") int page,
                                    @RequestParam(value = "limit") int limit) {

         ModelAndView mav = new ModelAndView("/web/list/listofresult");
        int totalItems = newService.countOfSearch(keyword);
         int totalPages = (int) Math.ceil( (double) totalItems / limit);

         NewDTO model = new NewDTO();
         model.setPage(page);
         model.setLimit(limit);
         model.setTotalPage(totalPages);
 
         Pageable pageable = new PageRequest(page - 1, limit);
         model.setListResult(newService.findAllByTitleLike(keyword, pageable));
         mav.addObject("keyword", keyword);
         mav.addObject("model", model);
         return mav;
     }

Còn cái hình này xử lý việc chuyển sang trang mới.

Lúc mà chuyển sang trang mới thì em gán giá trị cho limit với page rồi nhưng mà trên URL nó vẫn không nhận được. Nếu mà đổi tên 2 thẻ input đầu hình sang a và b thì nó mới có giá trị.

Giờ a và b mới có giá trị

Em thấy nếu mà để tham số ở trên URL khác với tham số @RequestParam thì nó mới nhận giá trị được, mà tham số ở URL với @RequestParam khác nhau thì nó đâu có lấy được giá trị. Mà để 2 cái input tên giống với 2 cái @RequestParam thì nó lại bị không có giá trị. Cảm ơn mọi người đã xem qua, mong mọi người giúp đỡ ạ.

1 Like

bạn cần check xem cái id #page#limit có bị dùng bởi tag html khác không, tức là f12 debug xem $(’#limit’).val(2) có đổ được dữ liệu vào đúng thẻ input chưa.

code phía controller không có vấn đề, vấn đề nằm ở chỗ bạn submit form thôi.
ví dụ $(’#limit’).val(2) không đổ dữ liệu đúng thì thẻ input trong form sẽ không có dữ liệu, thì form submit sẽ đẩy lên param không có dữ liệu thôi

5 Likes

Em mới chuyển 2 cái id name của 2 thẻ input thành page và zoo, ở bên controller em cũng chuyển luôn như thế. Xong rồi em có debug để xem nó có đổ dữ liệu vô thẻ input đúng không thì em nghĩ là nó đổ chắc đúng rồi á :<<

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?