Spring MVC реализует форму «Перейти к странице» с Thymeleaf - PullRequest
0 голосов
/ 15 октября 2018

У меня есть список, отображаемый в моем представлении, который заполняется из моей базы данных и использует нумерацию страниц.Пока работает нормально.Теперь я хочу дать пользователю возможность перейти на определенную страницу путем ввода в текстовое поле.

Мой метод контроллера будет выглядеть так, как мне кажется:

@Controller
public class OrderController {

private static final int INITIAL_PAGE_SIZE = 15;
private int currentPage = 1;

@Autowired
private OrderService service;

@GetMapping("/dispo/orderViewList/{pageNumber}")
private String showSpecifiedPage(@RequestParam("pageNumber") Integer page, Model model) {
    Page<LoadOrders> pagedList = service.findAll(page -1, INITIAL_PAGE_SIZE);
    List<LoadOrder> orderList = service.createLoadOrderPage(pagedList);

    model.addAttribute("page", orderList);
    model.addAttribute("currentPage", page);
    model.addAttribute("totalPages", pagedList.getTotalPages());

    return "/dispo/orderViewList";
}

Моя идея заключается в том, что теперь у меня есть атрибут модели с именем "page", чтобы изменить этот атрибут на номер страницы, который я хотел бы показать, и отправить его как запрос get в метод контроллера.И это код для представления:

<form action="#" th:action="@{/dispo/orderViewList/{page}}" method="get">
    Direkt zu Seite: <input type="text" th:field ="*{page}" size ="4"> <input type="submit">
 </form> 

Результат именно то, что я хотел, и выглядит так:

enter image description here

Но контроллер никогда не вызывается.Фактически контроллер для стандартного списка называется:

@GetMapping("/dispo/orderViewList")
private String showOrderList(@RequestParam("page") Optional<Integer> page, Model model) {
    page.ifPresent(p -> currentPage = p);

    Page<LoadOrders> pagedList = service.findAll(currentPage - 1, INITIAL_PAGE_SIZE);
    List<LoadOrder> orderList = service.createLoadOrderPage(pagedList); 

    model.addAttribute("page", orderList);
    model.addAttribute("currentPage", currentPage);
    model.addAttribute("totalPages", pagedList.getTotalPages());
    return "/dispo/orderViewList";
}

Итак, что я могу сделать, чтобы сказать контроллеру использовать метод с параметром страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...