推荐答案
在 Spring MVC 中,定义一个 Controller 通常使用 @Controller 注解。以下是一个简单的示例:
// www.javascriptcn.com code example
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/example")
public class ExampleController {
@GetMapping("/hello")
public String sayHello() {
return "hello"; // 返回视图名称
}
}在这个示例中:
@Controller注解用于标记该类为一个 Spring MVC 控制器。@RequestMapping("/example")注解用于指定该控制器的根路径。@GetMapping("/hello")注解用于处理 HTTP GET 请求,并映射到/example/hello路径。sayHello()方法返回一个字符串"hello",表示视图名称,Spring MVC 会根据配置的视图解析器找到对应的视图文件(如hello.jsp或hello.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 请求,并返回相应的视图或数据。