【问题标题】:Link a method from a controller to a button click in Spring boot Java将控制器中的方法链接到 Spring Boot Java 中的按钮单击
【发布时间】:2018-09-07 13:23:29
【问题描述】:

我正在开发一个 Spring Java 项目。我有一个包含多个按钮的视图。每个都会从控制器触发一个方法。那么如何将按钮单击功能链接到控制器中的特定方法?

这是 MainView.html 中的一些 HTML

 <button class="btn btn-success btn-default">
 <span class="glyphicon glyphicon-play-circle" aria-hidden="true"></span>
 </button>

这是 MainController 类:

import org.springframework.stereotype.Controller;


@Controller
public class MainController
{

    @GetMapping(value="/")
    public String home() 
    {
         return "views/MainView";
    }

     public void run() //I want to link the button click to this method
     {  
         System.out.println("Test1");
         System.out.println("Test2");
         System.out.println("Test3");
         System.out.println("Test4");
     }
}

【问题讨论】:

  • 您的 Web 前端需要向您的控制器执行 GET 请求。这将是一个单页应用风格的 webapp(然后你会使用一些库为你提交一个 ajax 请求)还是一个传统的请求/响应 webapp(在这种情况下你可以有一个 HTML 表单提交给你的控制器)

标签: java html spring-mvc spring-boot


【解决方案1】:

您的页面包含向服务器发出请求的表单和按钮。

Spring 在服务器端处理请求。

如果您使用的是 Chrome,您可以在 Network 选项卡上监控网络行为,当您按下相关按钮以查看浏览器和服务器之间的请求和响应时。

【讨论】:

  • javascript函数包含一个url。当页面调用服务器时,Spring Web 用 RequestMapping 找到目标方法。
【解决方案2】:

您可以将映射添加到您的方法并从 js 函数中调用它。我不确定你的目标是什么。 在您的控制器上:

@GetMapping(value="/run")
public void run() //I want to link the button click to this method
     {  
         System.out.println("Test1");
         System.out.println("Test2");
         System.out.println("Test3");
         System.out.println("Test4");
     }

然后你的按钮可以调用一个javascript函数从/run

获取数据

【讨论】:

  • 你能解释一下javascript函数如何调用我的java方法吗?
  • 根据您希望 run 方法执行的操作,您可以进行 AJAX 调用,如果需要,将数据发送到该方法。
  • 这里是使用 vanilla js w3schools.com/xml/ajax_intro.asp 的 AJAX 快速介绍。根据您的客户端的外观,您可以使用 jQuery 或任何前端框架来完成此操作
  • 我是 Spring 框架的新手。我认为有一种简单的方法可以在我的 java 控制器中处理来自我的 html 的按钮点击。
猜你喜欢
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
相关资源
最近更新 更多