Spring - 带有示例的多动作控制器
Spring 是最流行的Java EE 框架之一。它是一个开源轻量级框架,允许Java EE 7 开发人员构建简单、可靠且可扩展的企业应用程序。该框架主要侧重于提供各种方法来帮助您管理业务对象。与Java数据库连接 (JDBC)、JavaServer Pages (JSP) 和Java Servlet 等经典Java框架和应用程序编程接口 (API) 相比,它使 Web 应用程序的开发更加容易。
Multi-Action Controller:根据Spring官方文档,MultiActionController是一个Controller实现,允许同一个类处理多种请求类型。此类的子类可以使用表单的方法处理几种不同类型的请求。
那么现在让我们通过一个 Spring MVC 项目示例来理解这一行。
实施:项目要求如下:
- Eclipse(EE版)/STS IDE
- 弹簧 JAR 文件
- Tomcat Apache 最新版本
设置项目
Note: We are going to use Spring Tool Suite 4 IDE for this project. Please refer to this article to install STS in your local machine How to Download and Install Spring Tool Suite (Spring Tools 4 for Eclipse) IDE?
第 1 步:在您的 STS IDE 中创建一个动态 Web 项目。您可以参考这篇文章在 STS中创建动态 Web 项目:如何在 Spring Tool Suite 中创建动态 Web 项目?
第 2 步:下载 spring JARs 文件并转到src > main > webapp > WEB-INF > lib文件夹并通过这些 JAR 文件。
第 3 步:请参阅本文配置 Apache Tomcat 服务器并使用您的应用程序配置 Tomcat 服务器。现在我们准备好了。
配置 Dispatcher Servlet
请参考这篇文章什么是 Spring 中的 Dispatcher Servlet?并阅读有关 Dispatcher Servlet 的更多信息,这是一个非常重要的概念。现在我们将使用我们的 Spring MVC 应用程序配置 Dispatcher Servlet。
第 4 步:转到src > main > webapp > WEB-INF > web.xml文件, web.xml文件的完整代码如下所示:
第 5 步:现在转到src > main > webapp > WEB-INF并创建一个 XML 文件。实际上,这是一个 Spring 配置文件,如 beans.xml 文件。并且文件名必须是这种格式
YourServletName-servlet.xml
例如,对于这个项目,文件的名称必须是
frontcontroller-dispatcher-servlet.xml
因此,您可以创建一个 Spring 配置文件,也可以只创建一个简单的 XML 文件,在该文件中添加以下代码行。
示例: frontcontroller-dispatcher-servlet.xml
XML
Java
// Java Program to Create Multiple Handler Methods
// Inside Single Controller Class
package com.student.controllers;
// Importing required classes
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
// Annotation
@Controller
// Class
public class DemoController {
@ResponseBody
@RequestMapping("/hello")
public String helloWorld()
{
return "Hello World!";
}
@ResponseBody
@RequestMapping("/geeksforgeeks")
public String welcomeGfgMessage()
{
return "Welcome to GeeksforGeeks";
}
@ResponseBody
@RequestMapping("/happycoding")
public String happyCodingMesage()
{
return "Happy Coding Guyz!";
}
}
XML
创建您的多动作控制器
第 6 步:现在,让我们创建一些控制器。转到 src/main/ Java并根据您的选择创建一个新的控制器包(例如 com.student.controllers)。并在其中创建一个Java类并将该类命名为 DemoController。现在如何告诉 Spring 这是我们的控制器类。所以我们要告诉 Spring 的方法是用 @Controller 注释标记它。
@Controller
public class DemoController {}
Note: Spring will automatically initialize the class having a @Controller annotation and register that class with the spring container.
现在让我们在这个单个控制器类中创建一些多个处理程序方法。所以我们可以写这样的东西。
例子
Java
// Java Program to Create Multiple Handler Methods
// Inside Single Controller Class
package com.student.controllers;
// Importing required classes
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
// Annotation
@Controller
// Class
public class DemoController {
@ResponseBody
@RequestMapping("/hello")
public String helloWorld()
{
return "Hello World!";
}
@ResponseBody
@RequestMapping("/geeksforgeeks")
public String welcomeGfgMessage()
{
return "Welcome to GeeksforGeeks";
}
@ResponseBody
@RequestMapping("/happycoding")
public String happyCodingMesage()
{
return "Happy Coding Guyz!";
}
}
So in the above code, we have created 3 handle methods (3 multiple request types)
- student.com/hello
- student.com/geeksforgeeks
- student.com/happycoding
在一个控制器类中,spring 允许我们这样做。所以我们可以说 MultiActionController 是一个 Controller 实现,它允许同一个类处理多个请求类型。
运行多动作控制器
第 7 步:在运行应用程序之前,在frontcontroller-dispatcher-servlet.xml文件中添加以下行。
示例: frontcontroller-dispatcher-servlet.xml
XML
第 8 步:要运行您的 Spring MVC 应用程序,请右键单击您的项目 > 运行方式 > 在服务器上运行并运行您的应用程序,如下图所示:
之后使用以下 URL 运行您的控制器,如下图所示。图片中提到了所有其他细节。要运行“ /hello ”请求,请点击以下 URL
http://localhost:8080/myfirst-mvc-project/student.com/hello
Similarly, to run the ‘/geeksforgeeks‘ request hit the following URL:
网页中的输出:
http://localhost:8080/myfirst-mvc-project/student.com/geeksforgeeks
最后,为了运行“/happycoding ”请求,点击以下 URL:
Welcome to GeeksforGeeks
网页中的输出:
http://localhost:8080/myfirst-mvc-project/student.com/happycoding