【整理】controller中常用注解

目录

  • [1. @Controller](#1. @Controller)
  • [2. @RestController](#2. @RestController)
  • [3. @RequestMapping](#3. @RequestMapping)
  • [4. @RequestParam](#4. @RequestParam)
  • [5. @PathVariable](#5. @PathVariable)
  • [6. @ModelAttribute](#6. @ModelAttribute)

1. @Controller

@Controller用于标识一个类为Spring MVC的控制器。这个类的方法可以用于http请求,并返回视图或数据

2. @RestController

@RestController=@Controller+@ResponseBody,用于RESTful风格的控制器。这个类的方法可以用于返回JSON或者XML格式的数据

3. @RequestMapping

@RequestMapping用来指定请求的URL路径、HTTP方法以及其他请求条件。

java 复制代码
@Controller
public class MyController {
    // 处理GET请求
    //              指定请求路径         指定请求方法                 指定请求包含参数
    //请求url:http://localhost:8080/greeting?type=example
    @RequestMapping(value = "/greeting", method = RequestMethod.GET, params = "type=example")
    public String greeting() {
    		return "greeting";
    }
}

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping这些注解分别等同于指定了HTTP方法GET、POST、PUT和DELETE的@RequestMapping注解。

4. @RequestParam

@RequestParam用于将请求参数绑定到方法参数上。

java 复制代码
@Controller
public class MyController {
    // 处理GET请求,并从请求中提取参数
    @RequestMapping(value = "/greet", method = RequestMethod.GET)
    public String greet(
    //           指定请求参数名称   参数不必须       默认值
    @RequestParam(name = "name", required = false, defaultValue = "Guest") String name
    ) {
        return "greet:"+name;
    }
}

5. @PathVariable

@PathVariable用于将URL中的占位符参数绑定到方法参数上。

java 复制代码
@RestController
public class MyController {
 	 @GetMapping("/users/{userId}")
    public String getUserById(@PathVariable("userId") String userId) {
        return "User ID: " + userId;
    }
}

6. @ModelAttribute

@ModelAttribute用于将请求参数绑定到模型对象上,并将该对象添加到模型中,以便在视图中使用。

示例

java 复制代码
@Controller
public class MyController {
    @RequestMapping("/")
    public String index() {
        return "user";
    }
    // 处理GET请求,返回表单页面
    @RequestMapping(value = "/userForm", method = RequestMethod.GET)
    public String showForm(Model model) {
        model.addAttribute("user", new User());
        return "user";
    }
    // 处理POST请求,接收表单提交的数据
    @RequestMapping(value = "/submitForm", method = RequestMethod.POST)
    public String submitForm(@ModelAttribute("user") User user, Model model) {
        model.addAttribute("message", "User submitted: " + user.getName());
        return "user";
    }
}

User类

java 复制代码
public class User {
    private String name;
    private String email;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}

user.html

html 复制代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>User Form</h1>
<form action="/submitForm" method="post">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required>
    <br>
    <button type="submit">Submit</button>
</form>
<div>
    <h2>Message:</h2>
    <p th:text="${message}"></p>
</div>
</body>
</html>
相关推荐
JH30733 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
qq_12498707536 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_6 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
2301_818732066 小时前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea
汤姆yu10 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
暮色妖娆丶10 小时前
Spring 源码分析 单例 Bean 的创建过程
spring boot·后端·spring
biyezuopinvip11 小时前
基于Spring Boot的企业网盘的设计与实现(任务书)
java·spring boot·后端·vue·ssm·任务书·企业网盘的设计与实现
JavaGuide11 小时前
一款悄然崛起的国产规则引擎,让业务编排效率提升 10 倍!
java·spring boot
figo10tf12 小时前
Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程
java·spring boot·后端
zhangyi_viva12 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端