在
1、接收来自客户端的
2、
3、根据操作结果准备
4、
使用样例
简单页面渲染
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class SimplePageController { @GetMapping("/hello") public String displayHelloPage() { // ... return "hello"; // 假设有一个名为"hello.html"的模板文件在视图解析器配置的路径下 } }
结合ModelAndView对象使用
import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class UserViewController { @GetMapping("/users/{id}") public ModelAndView showUser(@PathVariable Long id, Model model) { // 假设userService.find(id)获取用户信息 User user = userService.find(id); // 将用户信息添加到模型中供视图模板使用 model.addAttribute("user", user); // 返回包含视图名称和模型数据的ModelAndView对象 return new ModelAndView("user-profile", model.asMap()); } }
处理POST请求并返回重定向
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @Controller @RequestMapping("/login") public class LoginController { @GetMapping public String showLoginForm() { // 显示登录表单页面 return "login"; } @PostMapping public String processLogin(@RequestParam("username") String username, @RequestParam("password") String password, RedirectAttributes redirectAttrs) { // 假设userService.authenticate(username, password)进行身份验证 if (userService.authenticate(username, password)) { // 登录成功,重定向到主页 redirectAttrs.addFlashAttribute("successMessage", "Welcome, you have successfully logged in!"); return "redirect:/home"; } else { // 登录失败,将错误信息添加到模型中以便在重定向后的页面显示 redirectAttrs.addFlashAttribute("errorMessage", "Invalid credentials. Please try again."); return "redirect:/login"; } } }
结合@RequestBody处理JSON数据
import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @PostMapping("/users") public ResponseEntity<User> createUser(@RequestBody CreateUserRequest request) { User user = userService.createUser(request.getName(), request.getEmail()); return ResponseEntity.ok(user); } static class CreateUserRequest { private String name; private String email; // getters and setters } }