繁体   English   中英

如何从html单击运行java方法?

[英]How to run a java method on click from html?

我希望在我的屏幕上显示的数据中添加一个排序按钮。 在 monet 我有我的回购设置,如图所示。

@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 上的按钮时,它会调用此方法并对数据进行排序。 在加载屏幕时,它显示所有未过滤的数据,如果我将其更改为使用“findByOrderByPlayerNameAsc”,它会在加载时自动过滤。 但我希望这仅在单击按钮时发生。

 public String displayPlayerFilteredByName(Model model) {

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

    return "/player";
}

这是否可以仅使用 java 和 html? 或者是否有使用 JS 的替代方法?

避免 JavaScript 和动态前端的唯一方法是从后端新生成的视图或播放器的 .html 请求。

  1. 这需要设置一个新的映射,例如。
@GetMapping("/players/asc-names")
public String displayPlayersByPlayerNameAsc(Model model) {
   ...
}

其中按钮只是指向新端点的链接。

  1. 另一种方法是向您提供额外的信息来获取/player请求并通过后端的@RequestBody提取它。 但这已经要求在按钮上设置一些 JavaScript。

  2. 如果您的应用程序还不是太复杂。 我会检查诸如 Angular 之类的前端框架,这可以使其在未来更容易扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM