当前位置: 首页 > article >正文

SpringMVC常用注解和用法总结

目标:

1. 熟悉使用SpringMVC中的常用注解

目录

前言

1. @Controller

2. @RestController

3. @RequestMapping

4. @RequestParam

5. @PathVariable

6. @SessionAttributes

7. @CookieValue


前言

SpringMVC是一款用于构建基于Java的Web应用程序的框架,它通过注解的方式简化了Web应用的开发。在本文中,我们将总结一些SpringMVC中常用的注解及其用法,以便开发者更好地理解和使用这些注解


1. @Controller

在方法中直接返回对象时,Spring MVC 会将其作为模型数据传递给视图解析器,然后解析为具体的视图

@Controller
public class MyController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello.html";
    }
}

当在类注解中加上 @ResponseBody 时,返回的为数据而不是页面

@Controller
public class MyController {

    @ResponseBody 
    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }
}

第一段代码返回 html 页面(html, css, js等都能返回)

第二个返回 "hello" 这个字符串


2. @RestController

其方法的返回值会被直接写入 HTTP 响应体中,而不是被视图解析器解析为视图。通常返回的是 JSON 或 XML 数据。

@RestController
public class MyRestController {

    @RequestMapping("/api/data")
    public Map<String, String> getData() {
        Map<String, String> data = new HashMap<>();
        data.put("key", "value");
        return data;
    }
}

 我们可以将 @RestControll 是由@Controller + @ResponseBody组成的,所以是直接返回数据而不是页面


3. @RequestMapping

@RequestMapping 注解用于映射请求路径和Controller方法,指定请求的URL路径

@Controller
@RequestMapping("/myapp")
public class MyController {

    @RequestMapping("/hello")
    public String hello() {
        return "helloPage";
    }
}

例如:

如果你想要访问hello方法的时候,你就可以这样访问:127.0.0.1:8080/myapp/hello


4. @RequestParam

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

@Controller
public class MyController {

    @RequestMapping("/greet")
    public String greet(@RequestParam("name") String name) {
        // Method logic using name parameter
        return "greetPage";
    }
}

注意:

这里@RequestParam里面的参数应和前端传入的相同,如果想要自行修改的话括号里这一样写,(value = "你想要改的", required = false)

@Controller
public class MyController {

    @RequestMapping("/greet")
    public String greet(@RequestParam(value = "name2", required = false) String name) {
        // Method logic using name parameter
        return "greetPage";
    }
}

5. @PathVariable

@PathVariable 注解用于从URI中提取模板变量的值

@Controller
@RequestMapping("/users")
public class UserController {

    @RequestMapping("/{userId}")
    public String getUser(@PathVariable("userId") int userId) {
        // Method logic using userId
        return "userPage";
    }
}

6. @SessionAttributes

@SessionAttributes 注解用于指定哪些模型属性需要存储在会话中。

@Controller
@SessionAttributes("user")
public class UserController {

    @RequestMapping("/login")
    public String login(@ModelAttribute("user") User user) {
        // Method logic for user login
        return "dashboard";
    }
}

去掉最后一个s,是得到 Session

@RequestMapping("/getSession")
public String getSession(@SessionAttribute(value = "lpy", required = false) String lpy) {
      return "登录账户" + lpy;
}

7. @CookieValue

@CookieValue 用于获取到浏览器中的cooike

@RequestMapping("/getCookie")
public String getCookie(@CookieValue("lpy") String lpy) {
    return "lpy:" + lpy;
}


http://www.kler.cn/a/155694.html

相关文章:

  • 数据集标注txt文件读取小工具
  • Python 连接 Redis 进行增删改查(CRUD)操作
  • 基于标签相关性的多标签学习
  • CSS多列布局:打破传统布局的束缚
  • INQUIRE:一个包含五百万张自然世界图像,涵盖10,000个不同物种的专为专家级文本到图像检索任务设计的新型基准数据集。
  • 前端-同源与跨域
  • leetcode:468. 验证IP地址
  • viple模拟器使用(四):unity模拟器中实现两距离局部最优迷宫算法
  • javaee实验:文件上传及截器的使用
  • 迭代器模式-C++实现
  • Hive 安装部署
  • (11_29)畅捷通的 Serverless 探索实践之路
  • [Java]轻松掌握JDK和CGlib代理的使用技巧,让你的Java程序性能更卓越!
  • C语言实战演练之贪吃蛇游戏
  • 【springboot】启动失败 Failed to start bean ‘webServerStartStop‘
  • Unity安装
  • Python生产者消费者模型
  • Zabbix 6.0 详细基础介绍
  • 充电桩新老国标兼容性分析
  • OpenCvSharp从入门到实践-(06)创建图像
  • 编译原理头歌实验:实验4《算符优先分析法设计与实现》(C语言版)
  • vue el-select封装及使用
  • Prefix-Tuning 论文概述
  • JAVA代码优化:记录日志
  • 使用AOS实现网页动画效果
  • 利用段落检索和生成模型进行开放域问答12.2