Как запустить метод java на клике с html? - PullRequest
0 голосов
/ 16 февраля 2020

Я хочу добавить кнопку сортировки к моим данным, которая отображается на моем экране. На м onet мой репо настроен так, как показано.

@Repository
public interface PlayerRepository extends JpaRepository<Player, Long> {

Player findAllById(Long id);
List<Player> findByOrderByPlayerNameAsc();
}

И в моем классе контроллеров он у меня такой:

@GetMapping("/player")
public String displayPlayer(Model model) {

    model.addAttribute("player", service.findAll());

    return "/player";
}

Я хочу иметь возможность создайте новый метод и сделайте так, чтобы при нажатии кнопки на html моего приложения он вызывал этот метод и сортировал данные. В данный момент при загрузке экрана отображаются все данные без фильтрации, если я изменю их на использование «findByOrderByPlayerNameAs c», которое автоматически фильтруется при загрузке. Но я бы хотел, чтобы это происходило только при нажатии кнопки.

 public String displayPlayerFilteredByName(Model model) {

    model.addAttribute("player", service.findByOrderByPlayerNameAsc());

    return "/player";
}

Возможно ли это просто с помощью java и html? Или есть альтернатива, использующая JS?

1 Ответ

1 голос
/ 17 февраля 2020

Единственный способ избежать JavaScript и динамического c front-end - это запросить у back-end вновь сгенерированное представление или. html ваших игроков.

  1. Требуется установить новое отображение, например.
@GetMapping("/players/asc-names")
public String displayPlayersByPlayerNameAsc(Model model) {
   ...
}

, где кнопка будет просто ссылкой на новую конечную точку.

Другим способом было бы предоставить дополнительную информацию для получения запроса /player и извлечь его с помощью @RequestBody на сервере. Но это уже требует настройки JavaScript для кнопки.

Если ваше приложение еще не слишком сложное. Я бы проверил интерфейсные структуры, такие как Angular, которые могли бы облегчить расширение в будущем.

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