【SpringMVC】004-SpringMVC常用注解
原创
©著作权归作者所有:来自51CTO博客作者訾博ZiBo的原创作品,请联系作者获取转载授权,否则将追究法律责任
目录
一、RequestParam注解
1、作用
2、属性
3、示例
HelloController类代码:
index.jsp代码:
运行结果:成功将name传给了username
二、RequestBody注解
1、作用
2、属性
3、示例
HelloController类代码:
index.jsp代码:
运行结果:
三、PathVariable注解
1、作用
2、属性
3、示例
HelloController类代码:
index.jsp代码:
运行结果:
四、RequestHeader注解(用处不大)
1、作用
2、属性
3、示例
HelloController类:
index.jsp页面代码:
运行结果:
五、CookieValue注解
1、作用
2、属性
3、示例
HelloController类:
index.jsp页面:
运行结果:
六、SessionAttributes注解
1、作用
2、属性
3、示例
HelloConreoller类:
index.jsp页面:
运行结果:
一、RequestParam注解
1、作用
把请求中指定名称的参数给控制器中的形参赋值;
2、属性
value:请求参数中的名称;
name:与value属性功能一直,只是value有其简写特性;
required:请求参数中是否必须提供此参数,默认为true,表示必须提供,否则报错;
3、示例
HelloController类代码:
package com.zibo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
//控制器
@Controller
public class HelloController {
//设置路径为"/hello"
@RequestMapping(value = "/hello")
public String sayHello(@RequestParam("name")String username){
//打印所传参数
System.out.println(username);
//控制台打印"Hello Spring MVC!"
System.out.println("Hello Spring MVC!");
//返回success.jsp页面
return "success";
}
}
index.jsp代码:
<%--
Created by IntelliJ IDEA.
User: ZiBo
Date: 2020/8/9
Time: 14:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序!</h3>
<a href="hello?name=大哥哥">点我调转到success.jsp页面</a>
</body>
</html>
运行结果:成功将name传给了username

二、RequestBody注解
1、作用
用于获取请求体内容;
直接使用得到的是key=value&key=value...结构的数据;
get请求方式不适用;
2、属性
required:是否必须有请求体,默认为true,必须有,若没有则报错;若为false,get请求返回的是null;
3、示例
HelloController类代码:
package com.zibo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
//控制器
@Controller
public class HelloController {
//设置路径为"/hello"
@RequestMapping(value = "/hello")
public String sayHello(@RequestBody String body){
//打印请求体内容
System.out.println(body);
//控制台打印"Hello Spring MVC!"
System.out.println("Hello Spring MVC!");
//返回success.jsp页面
return "success";
}
}
index.jsp代码:
<%--
Created by IntelliJ IDEA.
User: ZiBo
Date: 2020/8/9
Time: 14:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序!</h3>
<%-- <a href="hello">点我调转到success.jsp页面</a>--%>
<form action="hello" method="post">
<input type="text" name="username"/>
<input type="submit" name="submit"/>
</form>
</body>
</html>
运行结果:

三、PathVariable注解
1、作用
用于绑定url中的占位符;
例如:请求URL——/delete/{id}中,{id}就是URL的占位符;
URL支持占位符是从spring3.0之后加入的,是springmvc支持rest风格URL的一个重要标志;
restful编程风格;
2、属性
value:用于指定URL中占位符名称;
required:是否必须提供占位符;
3、示例
HelloController类代码:
package com.zibo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
//控制器
@Controller
public class HelloController {
//设置路径为"/hello"
@RequestMapping(value = "/hello/{sid}")
public String sayHello(@PathVariable("sid") String id){
//打印id
System.out.println(id);
//控制台打印"Hello Spring MVC!"
System.out.println("Hello Spring MVC!");
//返回success.jsp页面
return "success";
}
}
index.jsp代码:
<%--
Created by IntelliJ IDEA.
User: ZiBo
Date: 2020/8/9
Time: 14:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序!</h3>
<a href="hello/100">点我调转到success.jsp页面</a>
</body>
</html>
运行结果:

四、RequestHeader注解(用处不大)
1、作用
用于获取请求消息头;
2、属性
value:提供消息头名称;
required:是否必须有此消息头;
3、示例
HelloController类:
package com.zibo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
//控制器
@Controller
public class HelloController {
//设置路径为"/hello"
@RequestMapping(value = "/hello")
public String sayHello(@RequestHeader("Accept") String header){
//打印
System.out.println(header);
//控制台打印"Hello Spring MVC!"
System.out.println("Hello Spring MVC!");
//返回success.jsp页面
return "success";
}
}
index.jsp页面代码:
<%--
Created by IntelliJ IDEA.
User: ZiBo
Date: 2020/8/9
Time: 14:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序!</h3>
<a href="hello">点我调转到success.jsp页面</a>
</body>
</html>
运行结果:

五、CookieValue注解
1、作用
用于获得指定cookie名称的值;
2、属性
value:指定cookie的名称;
required:是否必须由此cookie;
3、示例
HelloController类:
package com.zibo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
//控制器
@Controller
public class HelloController {
//设置路径为"/hello"
@RequestMapping(value = "/hello")
public String sayHello(@CookieValue("JSESSIONID") String cookie){
//打印
System.out.println(cookie);
//控制台打印"Hello Spring MVC!"
System.out.println("Hello Spring MVC!");
//返回success.jsp页面
return "success";
}
}
index.jsp页面:
<%--
Created by IntelliJ IDEA.
User: ZiBo
Date: 2020/8/9
Time: 14:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序!</h3>
<a href="hello">点我调转到success.jsp页面</a>
</body>
</html>
运行结果:

六、SessionAttributes注解
1、作用
用于多次执行控制器方法间的参数共享;
2、属性
value:用于指定存入的属性名称;
type:用于指定存入的数据类型;
3、示例
HelloConreoller类:
package com.zibo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.support.SessionStatus;
//控制器
@Controller
@SessionAttributes("msg") //将msg=大哥存到session域对象中
public class HelloController {
//设置路径为"/hello"
@RequestMapping(value = "/hello")
public String sayHello(ModelMap modelMap, SessionStatus status){
//将msg=大哥存到request域对象中
modelMap.addAttribute("msg","大哥");
//获取存入的数据
String msg = (String)modelMap.getAttribute("msg");
System.out.println(msg);
//删除requestScope里面的
status.setComplete();
//删除sessionScope里面的
modelMap.remove("msg");
//获取存入的数据
String msg1 = (String)modelMap.getAttribute("msg");
System.out.println(msg1);
//控制台打印"Hello Spring MVC!"
System.out.println("Hello Spring MVC!");
//返回success.jsp页面
return "success";
}
}
index.jsp页面:
<%--
Created by IntelliJ IDEA.
User: ZiBo
Date: 2020/8/9
Time: 14:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序!</h3>
<a href="hello">点我调转到success.jsp页面</a>
</body>
</html>
运行结果:
