编写Spring MVC控制器
前面已经创建好项目,这里就直接编写控制器。主要采用的是@Controller这个控制器
@Controller:
该注解用于标记一个类作为Spring MVC的控制器。这类控制器通常用于处理Web请求,返回视图名称或视图对象(如ModelAndView)。
- 在org.example下创建一个controller软件包,在该软件包下创建控制器类HelloController。补全代码,如下所示:
package org.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@GetMapping("/") //根目录返回html页面
public String hello() {
return "五子棋.html";
}
@RequestMapping("/home")
public String home() {
return "redirect:/"; // 跳转到根目录
}
}
首先访问localhost:8080/,可以访问到五子棋的html页面
接下来我们开始访问localhost:8080/home,同样也可以访问到五子棋的html页面,说明我们重定向成功。
- 该控制器的使用场景:
处理传统的MVC请求,返回HTML页面。
结合 Thymeleaf、FreeMarker 等模板引擎使用。
@RestController
@RestController注解是@Controller和@ResponseBody的组合注解。它用于标记一个类作为RESTful控制器,返回JSON或XML格式的数据。
- 在controller软件包下创建HelloRestController启动类,代码如下所示:
package org.example.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello World";
}
}
启动mavencreate类
访问localhost:8080/hello地址,看到页面如下:
- 使用场景:
处理RESTful API请求,返回JSON或XML数据。
不需要返回视图,直接返回数据对象。