如何在 Spring MVC 中定义 Controller?

推荐答案

在 Spring MVC 中,定义一个 Controller 通常使用 @Controller 注解。以下是一个简单的示例:

-- -------------------- ---- -------
------ ------------------------------------------
------ ---------------------------------------------------
------ -------------------------------------------------------

-----------
---------------------------
------ ----- ----------------- -

    ---------------------
    ------ ------ ---------- -
        ------ -------- -- ------
    -
-

在这个示例中:

  • @Controller 注解用于标记该类为一个 Spring MVC 控制器。
  • @RequestMapping("/example") 注解用于指定该控制器的根路径。
  • @GetMapping("/hello") 注解用于处理 HTTP GET 请求,并映射到 /example/hello 路径。
  • sayHello() 方法返回一个字符串 "hello",表示视图名称,Spring MVC 会根据配置的视图解析器找到对应的视图文件(如 hello.jsphello.html)。

本题详细解读

1. @Controller 注解

@Controller 是 Spring MVC 中用于标记一个类为控制器的注解。它通常与 @RequestMapping 注解一起使用,用于处理 HTTP 请求并返回视图或数据。

2. @RequestMapping 注解

@RequestMapping 注解用于将 HTTP 请求映射到控制器的处理方法上。它可以用于类级别和方法级别。在类级别使用时,它定义了该控制器的根路径;在方法级别使用时,它定义了具体的请求路径。

3. @GetMapping 注解

@GetMapping@RequestMapping 的简化版本,专门用于处理 HTTP GET 请求。它等同于 @RequestMapping(method = RequestMethod.GET)

4. 返回视图名称

在 Spring MVC 中,控制器方法通常返回一个字符串,表示视图名称。Spring MVC 会根据配置的视图解析器(如 InternalResourceViewResolver)找到对应的视图文件并渲染。

5. 其他常用注解

  • @PostMapping:用于处理 HTTP POST 请求。
  • @PutMapping:用于处理 HTTP PUT 请求。
  • @DeleteMapping:用于处理 HTTP DELETE 请求。
  • @PathVariable:用于从 URL 中提取变量。
  • @RequestParam:用于从请求参数中提取值。

通过这些注解,开发者可以轻松地定义和处理各种 HTTP 请求,并返回相应的视图或数据。

纠错
反馈