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 getData() {
        Map data = new HashMap<>();
        data.put("key", "value");
        return data;
    }
}

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

SpringMVC常用注解和用法总结_第1张图片


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;
}

你可能感兴趣的:(SpringMVC,开发语言,spring)